Skip to content

Commit 46beeb4

Browse files
authored
Designer: Fix plugin data format and handling for remote components (#283)
1 parent 669eb7d commit 46beeb4

22 files changed

Lines changed: 646 additions & 347 deletions

File tree

.changeset/olive-jokes-warn.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
"@adaptive-web/adaptive-ui-designer-figma": patch
3+
"@adaptive-web/adaptive-ui-designer-core": patch
4+
---
5+
6+
Fix plugin data storage

.vscode/settings.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
"Lrgb",
2727
"okhsl",
2828
"tablist",
29+
"tslog",
2930
"Unregisters"
3031
],
3132
"editor.insertSpaces": true,

package-lock.json

Lines changed: 26 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/adaptive-ui-designer-core/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,10 @@
3535
"dependencies": {
3636
"@adaptive-web/adaptive-ui": "^0.13.0",
3737
"@microsoft/fast-foundation": "^3.0.0-alpha.31",
38-
"@types/culori": "^2.0.0"
38+
"tslog": "^4.10.2"
3939
},
4040
"devDependencies": {
41+
"@types/culori": "^2.0.0",
4142
"rimraf": "^3.0.2",
4243
"typescript": "^5.4.5"
4344
}

packages/adaptive-ui-designer-core/src/controller.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@ export abstract class Controller {
2525
*/
2626
public static nodeCount: number = 0;
2727

28+
/**
29+
* Resets the node cache.
30+
*/
31+
public abstract resetNodeCache(): Promise<void>;
32+
2833
/**
2934
* Gets a Node from the design tool by ID.
3035
* @param id - The ID of the node.
@@ -77,6 +82,8 @@ export abstract class Controller {
7782
}
7883

7984
private async getPluginUIState(ids: string[]): Promise<PluginUIState> {
85+
await this.resetNodeCache();
86+
8087
const nodes = await Promise.all(ids
8188
.map(async id => await this.getNode(id))
8289
);

packages/adaptive-ui-designer-core/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
export { Controller, PluginUIState, STYLE_REMOVE } from "./controller.js";
2+
export { getLogger, indent } from "./logger.js";
23
export {
34
Config,
45
PluginNodeData,
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import { IMeta, Logger } from "tslog";
2+
3+
let loggerInstance: Logger<unknown> | null = null;
4+
5+
export const getLogger = (): Logger<unknown> => {
6+
if (!loggerInstance) {
7+
loggerInstance = new Logger({
8+
name: "Adaptive UI Designer",
9+
stylePrettyLogs: false,
10+
prettyLogTemplate: "{{dateIsoStr}}\t{{name}}\t",
11+
prettyErrorTemplate: "{{errorName}}: {{errorMessage}}",
12+
minLevel: 3, // 0: silly, 1: trace, 2: debug, 3: info, 4: warn, 5: error, 6: fatal
13+
overwrite: {
14+
addPlaceholders: (logObjMeta: IMeta, placeholderValues: Record<string, string | number>) => {
15+
if (logObjMeta.name) {
16+
placeholderValues["name"] = logObjMeta.name.substring(0, 20).padEnd(20);
17+
}
18+
},
19+
transportFormatted: (logMetaMarkup, logArgs, logErrors, logMeta) => {
20+
// Send different log levels to appropriate console methods
21+
const logLevel = logMeta?.logLevelName ?? logMetaMarkup.trim().split("\t")[1];
22+
switch (logLevel) {
23+
case "WARN":
24+
console.warn(logMetaMarkup, ...logArgs, ...logErrors);
25+
break;
26+
case "ERROR":
27+
case "FATAL":
28+
console.error(logMetaMarkup, ...logArgs, ...logErrors);
29+
break;
30+
case "INFO":
31+
// In the console log, errors and warnings show a stack trace behind an arrow, so indent to align with that.
32+
console.info(" " + logMetaMarkup, ...logArgs, ...logErrors);
33+
break;
34+
case "DEBUG":
35+
case "TRACE":
36+
case "SILLY":
37+
default:
38+
console.log(" " + logMetaMarkup, ...logArgs, ...logErrors);
39+
break;
40+
}
41+
}
42+
}
43+
});
44+
}
45+
return loggerInstance;
46+
};
47+
48+
export const indent = (level: number) => " ".repeat(level);

packages/adaptive-ui-designer-core/src/model.ts

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -136,14 +136,14 @@ export interface PluginNodeData {
136136
designTokens: DesignTokenValues;
137137

138138
/**
139-
* Style modules applied to the node.
139+
* Token + value pairs applied to the style of a node, evaluated from local and inherited design tokens.
140140
*/
141-
appliedStyleModules: AppliedStyleModules;
141+
appliedDesignTokens: AppliedDesignTokens;
142142

143143
/**
144-
* Token + value pairs applied to the style of a node, evaluated from local and inherited design tokens.
144+
* Style modules applied to the node.
145145
*/
146-
appliedDesignTokens: AppliedDesignTokens;
146+
appliedStyleModules: AppliedStyleModules;
147147
}
148148

149149
/**
@@ -181,19 +181,19 @@ export interface PluginUINodeData extends PluginNodeData {
181181
inheritedDesignTokens: ReadonlyDesignTokenValues;
182182

183183
/**
184-
* The design token values inherited by an instance node from the main component.
184+
* The design token values from the chain of reference nodes, like the main component for an instance node.
185185
*/
186-
componentDesignTokens?: ReadonlyDesignTokenValues;
186+
refDesignTokens?: ReadonlyDesignTokenValues;
187187

188188
/**
189-
* Applied style modules inherited by an instance node from the main component.
189+
* Applied style modules from the chain of reference nodes, like the main component for an instance node.
190190
*/
191-
componentAppliedStyleModules?: ReadonlyAppliedStyleModules;
191+
refAppliedStyleModules?: ReadonlyAppliedStyleModules;
192192

193193
/**
194-
* Applied design tokens inherited by an instance node from the main component.
194+
* Applied design tokens from the chain of reference nodes, like the main component for an instance node.
195195
*/
196-
componentAppliedDesignTokens?: ReadonlyAppliedDesignTokens;
196+
refAppliedDesignTokens?: ReadonlyAppliedDesignTokens;
197197

198198
/**
199199
* The resultant set of effective applied design tokens and values that need to be updated
@@ -228,13 +228,13 @@ export const pluginNodesToUINodes = async (
228228
supports: await node.getSupports(),
229229
additionalData: await node.getAdditionalData(),
230230
inheritedDesignTokens,
231-
componentDesignTokens: node.componentDesignTokens,
232-
componentAppliedStyleModules: node.componentAppliedStyleModules,
233-
componentAppliedDesignTokens: node.componentAppliedDesignTokens,
231+
refDesignTokens: node.refDesignTokens,
232+
refAppliedStyleModules: node.refAppliedStyleModules,
233+
refAppliedDesignTokens: node.refAppliedDesignTokens,
234234
effectiveAppliedStyleValues: new AppliedStyleValues(),
235235
children,
236236
config: node.config,
237-
designTokens: node.localDesignTokens as DesignTokenValues,
237+
designTokens: node.designTokens as DesignTokenValues,
238238
appliedStyleModules: node.appliedStyleModules as AppliedStyleModules,
239239
appliedDesignTokens: node.appliedDesignTokens as AppliedDesignTokens,
240240
};

0 commit comments

Comments
 (0)