Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 7 additions & 3 deletions app.js
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,7 @@ app.directive('contenteditable', function($timeout){
// Strip formatting on paste
var pasteBinding = $element.on('paste', function (e) {
var tempDiv = document.createElement("DIV");
var item = _.findWhere(e.clipboardData.items, { type: 'text/plain' });
var item = Array.from(e.clipboardData.items).find(function(i) { return i.type === 'text/plain'; });
item.getAsString(function (value) {
tempDiv.innerHTML = value;
Comment on lines 261 to 266
document.execCommand('inserttext', false, tempDiv.innerText);
Expand Down Expand Up @@ -321,8 +321,12 @@ app.directive('ngAutofocus', function(){
});
app.filter('unique', function(){
return function(data){
return _.uniq(data, false, function(row){
return row && row.text && row.text.toUpperCase();
var seen = new Set();
return data.filter(function(row) {
var key = row && row.text && row.text.toUpperCase();
Comment on lines 322 to +326
if (seen.has(key)) return false;
seen.add(key);
return true;
});
};
});
Expand Down
1 change: 0 additions & 1 deletion cache.manifest
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
CACHE MANIFEST
# Libraries from CDN
https://cdn.jsdelivr.net/npm/underscore@1.13.7/underscore-min.js
https://cdn.jsdelivr.net/npm/react@0.12.2/dist/react-with-addons.min.js
https://cdn.jsdelivr.net/npm/react-router@0.11.6/dist/react-router.min.js
https://cdn.jsdelivr.net/npm/reactfire@0.4.0/dist/reactfire.min.js
Expand Down
1 change: 0 additions & 1 deletion index.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
<title>Screenwriter</title>
<meta name="viewport" content="initial-scale=1, maximum-scale=1">
<!-- Libraries loaded from CDN -->
<script src="https://cdn.jsdelivr.net/npm/underscore@1.13.7/underscore-min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/react@0.12.2/dist/react-with-addons.min.js"></script>
<script src="https://cdn.firebase.com/js/client/1.1.3/firebase.js"></script>
<script src="https://cdn.jsdelivr.net/npm/reactfire@0.4.0/dist/reactfire.min.js"></script>
Comment on lines 7 to 10
Expand Down
4 changes: 1 addition & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,7 @@
"bootstrap": "^5.3.8",
"firebase": "^12.14.0",
"react": "^19.2.4",
"react-dom": "^19.2.4",
"reactfire": "^4.2.3",
"underscore": "^1.13.7"
"react-dom": "^19.2.4"
},
"devDependencies": {
"@babel/cli": "^7.28.6",
Expand Down
14 changes: 8 additions & 6 deletions script.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ var Script = React.createClass({
if (snapshot.val().firstLine) return;
var previous, previousIndex;
fb.update({firstLine: '0'});
_.each(snapshot.val().lines, function(line, index) {
Object.entries(snapshot.val().lines).forEach(function([index, line]) {
if (previous) {
fb.child('lines/'+previousIndex+'/next').set(index);
}
Expand All @@ -117,7 +117,7 @@ var Script = React.createClass({
}).bind(this));

window.onunload = (function(){
if (_.keys(this.state.script.lines).length <= 2)
if (Object.keys(this.state.script.lines).length <= 2)
fb.remove();
}).bind(this);
},
Expand Down Expand Up @@ -413,7 +413,7 @@ var ContentEditable = React.createClass({
stripPaste: function(e){
// Strip formatting on paste
var tempDiv = document.createElement("DIV");
var item = _.findWhere(e.clipboardData.items, { type: 'text/plain' });
var item = Array.from(e.clipboardData.items).find(function(i) { return i.type === 'text/plain'; });
item.getAsString(function (value) {
tempDiv.innerHTML = value;
Comment on lines 414 to 418
document.execCommand('inserttext', false, tempDiv.innerText);
Expand Down Expand Up @@ -503,9 +503,11 @@ var Nav = React.createClass({
var editing = this.state.script.lines && this.state.script.lines[this.props.editingIndex] || {};
if (this.state.open=='print') {
var characters = [];
_.each(_.uniq(_.map(_.pluck(_.where(this.state.script.lines, {type:'character'}), 'text'), function(character){
return character && character.toUpperCase();
})), function(character){
[...new Set(
Object.values(this.state.script.lines)
.filter(function(line) { return line.type === 'character'; })
.map(function(line) { return line.text && line.text.toUpperCase(); })
)].forEach(function(character){
if (character)
characters.push(<option key={character}>{character}</option>)
});
Expand Down
Loading