From 550d39bbc32c47ef3d0039a7a595ac43fdd25cf0 Mon Sep 17 00:00:00 2001 From: Julia Gru <56249914+julczka@users.noreply.github.com> Date: Tue, 5 Sep 2023 12:36:05 +0200 Subject: [PATCH] fix handlers --- .../src/mocks/data/stylesheet.data.ts | 57 +++++++++---------- .../workspace/stylesheet-workspace.context.ts | 4 +- ...workspace-view-rich-text-editor.element.ts | 1 - 3 files changed, 29 insertions(+), 33 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet.data.ts index f1e41f9981..318e0c4421 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet.data.ts @@ -3,6 +3,7 @@ import { createFileSystemTreeItem, createFileItemResponseModelBaseModel, createT import { CreateTextFileViewModelBaseModel, ExtractRichTextStylesheetRulesRequestModel, + ExtractRichTextStylesheetRulesResponseModel, FileSystemTreeItemPresentationModel, InterpolateRichTextStylesheetRequestModel, PagedFileSystemTreeItemPresentationModel, @@ -148,7 +149,7 @@ class UmbStylesheetData extends UmbEntityData { return this.data.find((item) => item.path === path && item.isFolder === true); } - getRules(path: string): Array { + getRules(path: string): ExtractRichTextStylesheetRulesResponseModel { const regex = /\*\*\s*umb_name:\s*(?[^*\r\n]*?)\s*\*\/\s*(?[^,{]*?)\s*{\s*(?.*?)\s*}/gis; const item = this.data.find((item) => item.path === path); if (!item) throw Error('item not found'); @@ -157,55 +158,49 @@ class UmbStylesheetData extends UmbEntityData { //@ts-ignore // eslint-disable-next-line no-unsafe-optional-chaining const rules = [...item.content?.matchAll(regex)].map((match) => match.groups); - return rules; + return { rules }; } - extractRules({ - requestBody, - }: { - requestBody?: ExtractRichTextStylesheetRulesRequestModel, - }) { + async extractRules({ requestBody }: { requestBody?: ExtractRichTextStylesheetRulesRequestModel }) { const regex = /\*\*\s*umb_name:\s*(?[^*\r\n]*?)\s*\*\/\s*(?[^,{]*?)\s*{\s*(?.*?)\s*}/gis; - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - //@ts-ignore - // eslint-disable-next-line no-unsafe-optional-chaining - const rules = [...requestBody.content?.matchAll(regex)].map((match) => match.groups); - return rules; + if (!requestBody) { + throw Error('No request body'); + } + const { content } = await requestBody; + if (!content) return { rules: [] }; + + const rules = [...content.matchAll(regex)].map((match) => match.groups); + return { rules }; } - interpolateRules({ - requestBody, - }: { - requestBody?: InterpolateRichTextStylesheetRequestModel, - }) { - debugger; + interpolateRules({ requestBody }: { requestBody?: InterpolateRichTextStylesheetRequestModel }) { const regex = /\/\*\*\s*umb_name:\s*(?[^*\r\n]*?)\s*\*\/\s*(?[^,{]*?)\s*{\s*(?.*?)\s*}/gis; - if(!requestBody) { - throw Error('No request body') + if (!requestBody) { + throw Error('No request body'); } - const {content, rules} = requestBody; + const { content, rules } = requestBody; - if(!content && !rules) return {content: ''}; + if (!content && !rules) return { content: '' }; - console.log(content) + console.log(content); - - // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // eslint-disable-next-line @typescript-eslint/ban-ts-comment //@ts-ignore // eslint-disable-next-line no-unsafe-optional-chaining - const cleanedContent = content?.replaceAll(regex, '') + const cleanedContent = content?.replaceAll(regex, ''); - const newContent = rules?.map(rule => - `/**umb_name:${rule.name}*/ + const newContent = rules?.map( + (rule) => + `/**umb_name:${rule.name}*/ ${rule.selector} { ${rule.styles} } ${cleanedContent} - `) - - return {content: newContent}; + `, + ); + return { content: newContent }; } insertFolder(item: CreateTextFileViewModelBaseModel) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts index fac1510f4b..8ee2e24e01 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts @@ -81,7 +81,8 @@ export class UmbStylesheetWorkspaceContext extends UmbWorkspaceContext ({ ...r, sortOrder: i })) ?? []); + const x = rules.data.rules?.map((r, i) => ({ ...r, sortOrder: i })) ?? []; + this.#rules.next(x); } } @@ -96,6 +97,7 @@ export class UmbStylesheetWorkspaceContext extends UmbWorkspaceContext { this.#context = workspaceContext as UmbStylesheetWorkspaceContext; - this.#context.sendContentGetRules(); this.observe(this.#context.rules, (rules) => { this._rules = rules;