fix handlers

This commit is contained in:
Julia Gru
2023-09-05 12:36:05 +02:00
parent 811f077211
commit 550d39bbc3
3 changed files with 29 additions and 33 deletions

View File

@@ -3,6 +3,7 @@ import { createFileSystemTreeItem, createFileItemResponseModelBaseModel, createT
import {
CreateTextFileViewModelBaseModel,
ExtractRichTextStylesheetRulesRequestModel,
ExtractRichTextStylesheetRulesResponseModel,
FileSystemTreeItemPresentationModel,
InterpolateRichTextStylesheetRequestModel,
PagedFileSystemTreeItemPresentationModel,
@@ -148,7 +149,7 @@ class UmbStylesheetData extends UmbEntityData<StylesheetDBItem> {
return this.data.find((item) => item.path === path && item.isFolder === true);
}
getRules(path: string): Array<RichTextRuleModel> {
getRules(path: string): ExtractRichTextStylesheetRulesResponseModel {
const regex = /\*\*\s*umb_name:\s*(?<name>[^*\r\n]*?)\s*\*\/\s*(?<selector>[^,{]*?)\s*{\s*(?<styles>.*?)\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<StylesheetDBItem> {
//@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*(?<name>[^*\r\n]*?)\s*\*\/\s*(?<selector>[^,{]*?)\s*{\s*(?<styles>.*?)\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*(?<name>[^*\r\n]*?)\s*\*\/\s*(?<selector>[^,{]*?)\s*{\s*(?<styles>.*?)\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) {

View File

@@ -81,7 +81,8 @@ export class UmbStylesheetWorkspaceContext extends UmbWorkspaceContext<UmbStyles
}
if (rules.data) {
this.#rules.next(rules.data.rules?.map((r, i) => ({ ...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<UmbStyles
}
async sendContentGetRules() {
if (!this.getData()?.content) return;
const requestBody = {

View File

@@ -60,7 +60,6 @@ export class UmbStylesheetWorkspaceViewRichTextEditorElement extends UmbLitEleme
this.consumeContext(UMB_WORKSPACE_CONTEXT, (workspaceContext) => {
this.#context = workspaceContext as UmbStylesheetWorkspaceContext;
this.#context.sendContentGetRules();
this.observe(this.#context.rules, (rules) => {
this._rules = rules;