diff options
| author | Nathan-SR <144961007+Nathan-SR@users.noreply.github.com> | 2024-10-03 02:47:23 -0400 | 
|---|---|---|
| committer | Nathan-SR <144961007+Nathan-SR@users.noreply.github.com> | 2024-10-03 02:47:23 -0400 | 
| commit | b21d8cc9d1b25ccd2e0103f47ad132dd6f04612d (patch) | |
| tree | de6de9f556dd647f132a1f707a93c77a38946f1c /src/client/util/DropConverter.ts | |
| parent | b013de245c77e40487e9842650239eff20c0e361 (diff) | |
| parent | 7af6d22556467c115809222db77d4056b42f390f (diff) | |
Merge branch 'nathan-starter' of https://github.com/brown-dash/Dash-Web into nathan-starter
Diffstat (limited to 'src/client/util/DropConverter.ts')
| -rw-r--r-- | src/client/util/DropConverter.ts | 18 | 
1 files changed, 10 insertions, 8 deletions
diff --git a/src/client/util/DropConverter.ts b/src/client/util/DropConverter.ts index eb2011b77..b5d29be4c 100644 --- a/src/client/util/DropConverter.ts +++ b/src/client/util/DropConverter.ts @@ -5,7 +5,7 @@ import { RichTextField } from '../../fields/RichTextField';  import { ComputedField, ScriptField } from '../../fields/ScriptField';  import { StrCast } from '../../fields/Types';  import { ImageField } from '../../fields/URLField'; -import { Docs } from '../documents/Documents'; +import { Docs, DocumentOptions } from '../documents/Documents';  import { DocumentType } from '../documents/DocumentTypes';  import { ButtonType, FontIconBox } from '../views/nodes/FontIconBox/FontIconBox';  import { DragManager } from './DragManager'; @@ -64,29 +64,31 @@ export function MakeTemplate(doc: Doc) {      return doc;  } -export function makeUserTemplateButton(doc: Doc) { +/** + * Makes a draggable button or image that will create a template doc Instance + */ +export function makeUserTemplateButtonOrImage(doc: Doc, image?: string) {      const layoutDoc = doc; // doc.layout instanceof Doc && doc.layout.isTemplateForField ? doc.layout : doc;      if (layoutDoc.type !== DocumentType.FONTICON) {          !layoutDoc.isTemplateDoc && makeTemplate(layoutDoc);      }      layoutDoc.isTemplateDoc = true; -    const dbox = Docs.Create.FontIconDocument({ +    const docOptions: DocumentOptions = {          _nativeWidth: 100,          _nativeHeight: 100,          _width: 100,          _height: 100, -        backgroundColor: StrCast(doc.backgroundColor),          title: StrCast(layoutDoc.title), -        btnType: ButtonType.ClickButton, -        icon: 'bolt',          isSystem: false, -    }); +    }; +    const dbox = image ? Docs.Create.ImageDocument(image, docOptions) : Docs.Create.FontIconDocument({ ...docOptions, backgroundColor: StrCast(doc.backgroundColor), btnType: ButtonType.ClickButton, icon: 'bolt' });      dbox.title = ComputedField.MakeFunction('this.dragFactory.title');      dbox.dragFactory = layoutDoc;      dbox.dropPropertiesToRemove = doc.dropPropertiesToRemove instanceof ObjectField ? ObjectField.MakeCopy(doc.dropPropertiesToRemove) : undefined;      dbox.onDragStart = ScriptField.MakeFunction('getCopy(this.dragFactory)');      return dbox;  } +  export function convertDropDataToButtons(data: DragManager.DocumentDragData) {      data?.draggedDocuments.forEach((doc, i) => {          let dbox = doc; @@ -102,7 +104,7 @@ export function convertDropDataToButtons(data: DragManager.DocumentDragData) {                  });              }          } else if (!doc.onDragStart && !doc.isButtonBar) { -            dbox = makeUserTemplateButton(doc); +            dbox = makeUserTemplateButtonOrImage(doc);          } else if (doc.isButtonBar) {              dbox.ignoreClick = true;          }  | 
