Skip to content

Commit

Permalink
feat(): update snippets processor
Browse files Browse the repository at this point in the history
  • Loading branch information
kehua committed Oct 28, 2022
1 parent 7cfc770 commit 5f88f08
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 23 deletions.
37 changes: 16 additions & 21 deletions bricks/next-builder/src/workbench-component-select/processor.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { cloneDeep } from "lodash";
import { BrickOptionItem } from "../builder-container/interfaces";
import { scanBricksInBrickConf } from "@next-core/brick-utils";
// import { scanBricksInBrickConf } from "@next-core/brick-utils";
import { groupItem, BrickSortField, SnippetType } from "./constants";

export function adjustBrickSort(
Expand Down Expand Up @@ -38,33 +38,17 @@ export function adjustBrickSort(
}

/**
*
* 在现有的 snippet 中找出只配置一个构件的片段,当成是该构件的下所属的 `构件 snippet`
* 如果有 useInBricks 字段的,表明该 snippets 可用在这些构件上其归属于 `场景化 snippet`
* 否则找到最外层的brick,当成是该构件的下所属的 `构件 snippet`
*
*/
export function getSnippetsOfBrickMap(
snippetList: BrickOptionItem[]
): Map<string, Map<SnippetType, BrickOptionItem[]>> {
const brickMap = new Map();
snippetList?.forEach((item) => {
const bricks: string[] = [];
item.bricks?.forEach((brickConf) => {
bricks.push(...scanBricksInBrickConf(brickConf));
});

if (bricks.length === 1) {
const brick = bricks[0];
const find = brickMap.get(brick);
if (!find) {
brickMap.set(brick, new Map([[SnippetType.SelfBrick, [item]]]));
} else {
const selfSnippets = find.get(SnippetType.SelfBrick);

selfSnippets
? selfSnippets.push(item)
: find.set(SnippetType.SelfBrick, [item]);
}
} else {
snippetList?.forEach((item) => {
if (item.useInBricks) {
item.useInBricks?.forEach((brick) => {
const find = brickMap.get(brick);
if (!find) {
Expand All @@ -77,6 +61,17 @@ export function getSnippetsOfBrickMap(
: find.set(SnippetType.Scene, [item]);
}
});
} else if (item.bricks) {
const brick = item.bricks[0].brick;
const find = brickMap.get(brick);
if (!find) {
brickMap.set(brick, new Map([[SnippetType.SelfBrick, [item]]]));
} else {
const selfSnippets = find.get(SnippetType.SelfBrick);
selfSnippets
? selfSnippets.push(item)
: find.set(SnippetType.SelfBrick, [item]);
}
}
});

Expand Down
4 changes: 2 additions & 2 deletions bricks/presentational-bricks/stories/chapters/basic-icon.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@ export const BasicIconStory: Story = {
},
],
title: {
en: "基础图标(带基本参数)",
zh: "basic-icon(with base argumnts)",
en: "basic-icon(with base argumnts)",
zh: "基础图标(带基本参数)",
},
},
{
Expand Down

0 comments on commit 5f88f08

Please sign in to comment.