From 146f8622d5bac2edc6b09f57c173bd057dfbcfad Mon Sep 17 00:00:00 2001
From: bobzel <zzzman@gmail.com>
Date: Fri, 8 Jul 2022 00:17:26 -0400
Subject: restructured currentUserUtils to avoid having import cycles.

---
 .../CollectionFreeFormRemoteCursors.tsx            | 105 +++++++++++----------
 1 file changed, 54 insertions(+), 51 deletions(-)

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

diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormRemoteCursors.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormRemoteCursors.tsx
index 9f6938e67..9e8d92d7d 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormRemoteCursors.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormRemoteCursors.tsx
@@ -1,79 +1,82 @@
-import { computed } from "mobx";
-import { observer } from "mobx-react";
+import { computed } from 'mobx';
+import { observer } from 'mobx-react';
 import * as mobxUtils from 'mobx-utils';
-import CursorField from "../../../../fields/CursorField";
-import { FieldResult } from "../../../../fields/Doc";
-import { List } from "../../../../fields/List";
-import { listSpec } from "../../../../fields/Schema";
-import { Cast } from "../../../../fields/Types";
-import { CurrentUserUtils } from "../../../util/CurrentUserUtils";
-import { CollectionViewProps } from "../CollectionView";
-import "./CollectionFreeFormView.scss";
-import React = require("react");
-import v5 = require("uuid/v5");
+import CursorField from '../../../../fields/CursorField';
+import { Doc, FieldResult } from '../../../../fields/Doc';
+import { Id } from '../../../../fields/FieldSymbols';
+import { List } from '../../../../fields/List';
+import { listSpec } from '../../../../fields/Schema';
+import { Cast } from '../../../../fields/Types';
+import { CollectionViewProps } from '../CollectionView';
+import './CollectionFreeFormView.scss';
+import React = require('react');
+import v5 = require('uuid/v5');
 
 @observer
 export class CollectionFreeFormRemoteCursors extends React.Component<CollectionViewProps> {
-
     @computed protected get cursors(): CursorField[] {
         const doc = this.props.Document;
 
         let cursors: FieldResult<List<CursorField>>;
-        const { id } = CurrentUserUtils;
+        const id = Doc.UserDoc()[Id];
         if (!id || !(cursors = Cast(doc.cursors, listSpec(CursorField)))) {
             return [];
         }
         const now = mobxUtils.now();
-        return (cursors || []).filter(({ data: { metadata } }) => metadata.id !== id && (now - metadata.timestamp) < 1000);
+        return (cursors || []).filter(({ data: { metadata } }) => metadata.id !== id && now - metadata.timestamp < 1000);
     }
 
     @computed get renderedCursors() {
-        return this.cursors.map(({ data: { metadata, position: { x, y } } }) => {
-            return (
-                <div key={metadata.id} className="collectionFreeFormRemoteCursors-cont"
-                    style={{ transform: `translate(${x - 10}px, ${y - 10}px)` }}
-                >
-                    <canvas className="collectionFreeFormRemoteCursors-canvas"
-                        ref={(el) => {
-                            if (el) {
-                                const ctx = el.getContext('2d');
-                                if (ctx) {
-                                    ctx.fillStyle = "#" + v5(metadata.id, v5.URL).substring(0, 6).toUpperCase() + "22";
-                                    ctx.fillRect(0, 0, 20, 20);
+        return this.cursors.map(
+            ({
+                data: {
+                    metadata,
+                    position: { x, y },
+                },
+            }) => {
+                return (
+                    <div key={metadata.id} className="collectionFreeFormRemoteCursors-cont" style={{ transform: `translate(${x - 10}px, ${y - 10}px)` }}>
+                        <canvas
+                            className="collectionFreeFormRemoteCursors-canvas"
+                            ref={el => {
+                                if (el) {
+                                    const ctx = el.getContext('2d');
+                                    if (ctx) {
+                                        ctx.fillStyle = '#' + v5(metadata.id, v5.URL).substring(0, 6).toUpperCase() + '22';
+                                        ctx.fillRect(0, 0, 20, 20);
 
-                                    ctx.fillStyle = "black";
-                                    ctx.lineWidth = 0.5;
+                                        ctx.fillStyle = 'black';
+                                        ctx.lineWidth = 0.5;
 
-                                    ctx.beginPath();
+                                        ctx.beginPath();
 
-                                    ctx.moveTo(10, 0);
-                                    ctx.lineTo(10, 8);
+                                        ctx.moveTo(10, 0);
+                                        ctx.lineTo(10, 8);
 
-                                    ctx.moveTo(10, 20);
-                                    ctx.lineTo(10, 12);
+                                        ctx.moveTo(10, 20);
+                                        ctx.lineTo(10, 12);
 
-                                    ctx.moveTo(0, 10);
-                                    ctx.lineTo(8, 10);
+                                        ctx.moveTo(0, 10);
+                                        ctx.lineTo(8, 10);
 
-                                    ctx.moveTo(20, 10);
-                                    ctx.lineTo(12, 10);
+                                        ctx.moveTo(20, 10);
+                                        ctx.lineTo(12, 10);
 
-                                    ctx.stroke();
+                                        ctx.stroke();
+                                    }
                                 }
-                            }
-                        }}
-                        width={20}
-                        height={20}
-                    />
-                    <p className="collectionFreeFormRemoteCursors-symbol">
-                        {metadata.identifier[0].toUpperCase()}
-                    </p>
-                </div>
-            );
-        });
+                            }}
+                            width={20}
+                            height={20}
+                        />
+                        <p className="collectionFreeFormRemoteCursors-symbol">{metadata.identifier[0].toUpperCase()}</p>
+                    </div>
+                );
+            }
+        );
     }
 
     render() {
         return this.renderedCursors;
     }
-}
\ No newline at end of file
+}
-- 
cgit v1.2.3-70-g09d2

