From 9bd34e05c1a55adc1dbc32635442a184a49ee444 Mon Sep 17 00:00:00 2001
From: Geireann Lindfield Roberts <60007097+geireann@users.noreply.github.com>
Date: Fri, 21 Jul 2023 20:43:13 -0400
Subject: fixed additional colour issues

and
- updated redo shortcut
- fixed some things with the tree view (particularly the sorting)
---
 src/client/views/collections/TreeView.tsx | 30 +++++++++++++++++++++++++-----
 1 file changed, 25 insertions(+), 5 deletions(-)

(limited to 'src/client/views/collections/TreeView.tsx')

diff --git a/src/client/views/collections/TreeView.tsx b/src/client/views/collections/TreeView.tsx
index 9158508fc..d904749b1 100644
--- a/src/client/views/collections/TreeView.tsx
+++ b/src/client/views/collections/TreeView.tsx
@@ -539,7 +539,7 @@ export class TreeView extends React.Component<TreeViewProps> {
     @computed get renderContent() {
         TraceMobx();
         const expandKey = this.treeViewExpandedView;
-        const sortings = (this.props.styleProvider?.(this.doc, this.props.treeView.props, StyleProp.TreeViewSortings) as { [key: string]: { color: string; label: string } }) ?? {};
+        const sortings = (this.props.styleProvider?.(this.doc, this.props.treeView.props, StyleProp.TreeViewSortings) as { [key: string]: { color: string; icon: JSX.Element | string } }) ?? {};
         const color = this.props.styleProvider?.(this.doc, this.props.treeView.props, StyleProp.Color)
         console.log("tree view", color, this.doc.title, Doc.IsSystem(this.doc))
         if (['links', 'annotations', 'embeddings', this.fieldKey].includes(expandKey)) {
@@ -585,8 +585,23 @@ export class TreeView extends React.Component<TreeViewProps> {
                     color: color
                  }}>
                     {!docs?.length || this.props.AddToMap /* hack to identify pres box trees */ ? null : (
-                        <div className={'treeView-sorting'} style={{ background: sortings[sorting]?.color }}>
-                            {sortings[sorting]?.label}
+                        <div className={'treeView-sorting'}>
+                            <IconButton
+                                color={sortings[sorting]?.color}
+                                size={Size.XSMALL}
+                                icon={sortings[sorting]?.icon}
+                                onPointerDown={e => {
+                                    downX = e.clientX;
+                                    downY = e.clientY;
+                                    e.stopPropagation();
+                                }}
+                                onClick={undoable(e => {
+                                    if (this.props.isContentActive() && Math.abs(e.clientX - downX) < 3 && Math.abs(e.clientY - downY) < 3) {
+                                        !this.props.treeView.outlineMode && (this.doc.treeViewSortCriterion = sortKeys[(curSortIndex + 1) % sortKeys.length]);
+                                        e.stopPropagation();
+                                    }
+                                }, 'sort order')}
+                            />
                         </div>
                     )}
                     <ul
@@ -689,7 +704,7 @@ export class TreeView extends React.Component<TreeViewProps> {
     @computed get renderBullet() {
         TraceMobx();
         const iconType = this.props.treeView.props.styleProvider?.(this.doc, this.props.treeView.props, StyleProp.TreeViewIcon + (this.treeViewOpen ? ':open' : !this.childDocs.length ? ':empty' : '')) || 'question';
-        const color = this.props.styleProvider?.(this.doc, this.props.treeView.props, StyleProp.Color)
+        const color = StrCast(Doc.UserDoc().userColor);
         const checked = this.onCheckedClick ? this.doc.treeViewChecked ?? 'unchecked' : undefined;
         return (
             <div
@@ -757,7 +772,7 @@ export class TreeView extends React.Component<TreeViewProps> {
     @observable headerEleWidth = 0;
     @computed get titleButtons() {
         const customHeaderButtons = this.props.styleProvider?.(this.doc, this.props.treeView.props, StyleProp.Decorations);
-        const color = this.props.styleProvider?.(this.doc, this.props.treeView.props, StyleProp.Color);
+        const color = StrCast(Doc.UserDoc().userColor);
         return this.props.treeViewHideHeaderFields() || this.doc.treeViewHideHeaderFields ? null : (
             <>
                 {customHeaderButtons} {/* e.g.,. hide button is set by dashboardStyleProvider */}
@@ -1000,6 +1015,11 @@ export class TreeView extends React.Component<TreeViewProps> {
                     onPointerEnter={this.onPointerEnter}
                     onPointerLeave={this.onPointerLeave}>
                     {contents}
+                    <div className={`treeView-background`}
+                        style={{
+                            background: StrCast(Doc.UserDoc().userColor)
+                        }}
+                    />
                 </div>
                 {this.renderBorder}
             </>
-- 
cgit v1.2.3-70-g09d2

