summaryrefslogtreecommitdiff
path: root/animism-align/frontend/app/views/editor/align/components/sidebar
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2021-03-08 22:11:55 +0100
committerJules Laplace <julescarbon@gmail.com>2021-03-08 22:11:55 +0100
commitd2cb17038b8537a609be06be2ed7013dbe27117e (patch)
tree028ceac9edddafc03ce80c49d5a05981bec3fcbe /animism-align/frontend/app/views/editor/align/components/sidebar
parentb5ceb782f40fc1e402d1e58bc1ced2e4038fd787 (diff)
beginning the BIG refactor. moving editor stuff into per-episode hierarchy
Diffstat (limited to 'animism-align/frontend/app/views/editor/align/components/sidebar')
-rw-r--r--animism-align/frontend/app/views/editor/align/components/sidebar/script.component.js23
-rw-r--r--animism-align/frontend/app/views/editor/align/components/sidebar/tableOfContents.component.js30
2 files changed, 53 insertions, 0 deletions
diff --git a/animism-align/frontend/app/views/editor/align/components/sidebar/script.component.js b/animism-align/frontend/app/views/editor/align/components/sidebar/script.component.js
new file mode 100644
index 0000000..6c20dfa
--- /dev/null
+++ b/animism-align/frontend/app/views/editor/align/components/sidebar/script.component.js
@@ -0,0 +1,23 @@
+import React, { Component } from 'react'
+// import { Link } from 'react-router-dom'
+import { bindActionCreators } from 'redux'
+import { connect } from 'react-redux'
+
+import actions from 'app/actions'
+
+const Script = ({ text }) => {
+ if (text.loading) return null
+ return (
+ <textarea
+ className='script'
+ onChange={e => actions.site.updateText(e.target.value)}
+ value={text}
+ />
+ )
+}
+
+const mapStateToProps = state => ({
+ text: state.site.text,
+})
+
+export default connect(mapStateToProps)(Script)
diff --git a/animism-align/frontend/app/views/editor/align/components/sidebar/tableOfContents.component.js b/animism-align/frontend/app/views/editor/align/components/sidebar/tableOfContents.component.js
new file mode 100644
index 0000000..34aedb5
--- /dev/null
+++ b/animism-align/frontend/app/views/editor/align/components/sidebar/tableOfContents.component.js
@@ -0,0 +1,30 @@
+import React, { Component } from 'react'
+// import { Link } from 'react-router-dom'
+import { bindActionCreators } from 'redux'
+import { connect } from 'react-redux'
+
+import { ROMAN_NUMERALS } from 'app/constants'
+import actions from 'app/actions'
+
+class TableOfContents extends Component {
+ render() {
+ const { loading, order, lookup } = this.props.annotation
+ if (loading || !order) return null
+ const sectionIds = order.filter(id => lookup[id].type === "section_heading")
+ return (
+ <div className="toc">
+ {sectionIds.map((id, i) => (
+ <div key={id} onClick={() => actions.align.setScrollPosition(lookup[id].start_ts)}>
+ {ROMAN_NUMERALS[i]}{'. '}{lookup[id].text}
+ </div>
+ ))}
+ </div>
+ )
+ }
+}
+
+const mapStateToProps = state => ({
+ annotation: state.annotation.index,
+})
+
+export default connect(mapStateToProps)(TableOfContents)