From 96895c70498957466db704dae01acc07d5ae677c Mon Sep 17 00:00:00 2001 From: madelinegr Date: Mon, 25 Feb 2019 19:57:17 -0500 Subject: refactored out bullets and can retitle main collection, but still need to retitle nested collections --- .../views/collections/CollectionTreeView.scss | 18 ++-------- .../views/collections/CollectionTreeView.tsx | 38 +++++++++++++++++++--- 2 files changed, 37 insertions(+), 19 deletions(-) (limited to 'src') diff --git a/src/client/views/collections/CollectionTreeView.scss b/src/client/views/collections/CollectionTreeView.scss index 054e605a0..452c56f54 100644 --- a/src/client/views/collections/CollectionTreeView.scss +++ b/src/client/views/collections/CollectionTreeView.scss @@ -15,19 +15,7 @@ li { padding-left: 0; } -/* ALL THESE SPACINGS ARE SUPER HACKY RIGHT NOW HANNAH PLS HELP */ - -li:before { - content: '\2014'; - margin-right: 0.7em; -} - -.collapsed:before { - content: '\25b6'; - margin-right: 0.65em; -} - -.uncollapsed:before { - content: '\25bc'; - margin-right: 0.5em; +.bullet { + width: 1.5em; + display: inline-block; } \ No newline at end of file diff --git a/src/client/views/collections/CollectionTreeView.tsx b/src/client/views/collections/CollectionTreeView.tsx index 2bcd8e8ef..3dbbb045a 100644 --- a/src/client/views/collections/CollectionTreeView.tsx +++ b/src/client/views/collections/CollectionTreeView.tsx @@ -13,6 +13,12 @@ export interface TreeViewProps { document: Document; } +export enum BulletType { + Collapsed, + Collapsible, + List +} + @observer /** * Component that takes in a document prop and a boolean whether it's collapsed or not. @@ -22,6 +28,17 @@ class TreeView extends React.Component { @observable collapsed: boolean = false; + renderBullet(type: BulletType) { + switch (type) { + case BulletType.Collapsed: + return
+ case BulletType.Collapsible: + return
+ case BulletType.List: + return
+ } + } + /** * Renders a single child document. If this child is a collection, it will call renderTreeView again. Otherwise, it will just append a list element. * @param document The document to render. @@ -38,10 +55,10 @@ class TreeView extends React.Component { // otherwise, check if it's a collection. else if (children && children !== "") { // if it's not collapsed, then render the full TreeView. - // TODO once clicking the title no longer expands the thing also make collection titles editable if (!this.collapsed) { return ( -
  • this.collapsed = true)} > +
  • this.collapsed = true)} > + {this.renderBullet(BulletType.Collapsible)} {title.Data}
      { ); } else { - return
    • this.collapsed = false)}>{title.Data}
    • + return
    • this.collapsed = false)}> + {this.renderBullet(BulletType.Collapsed)} + {title.Data} +
    • } } // finally, if it's a normal document, then render it as such. else { return
    • + {this.renderBullet(BulletType.List)} { let title = document.GetT(KeyStore.Title, TextField); @@ -97,7 +118,16 @@ export class CollectionTreeView extends CollectionViewBase { } return (
      -

      {titleStr}

      +

      { + let title = this.props.Document.GetT(KeyStore.Title, TextField); + if (title && title !== "") + return title.Data; + return ""; + }} SetValue={(value: string) => { + this.props.Document.SetData(KeyStore.Title, value, TextField); + return true; + }}>