♻️ refactor(vscode): 卡片里的子块只留挂在子行上、点了才展开的一种,测试假数据换掉旧 React 卡片的名字
This commit is contained in:
1 parent
f6bc217e91
commit
5e994cd90e
16 files changed
+121
-130
No files matched your search
@@ -18,8 +18,8 @@ function gridTemplate(count: number): string {
|
||||
}
|
||||
|
||||
/**
|
||||
* 库规则放进卡片属性表里的子块(BlockSlot):blocks 是卡片的这些子块,render 把一行下面的几块画成一层块(同块树),
|
||||
* onToggle 是点子行第一格时展开 / 收起讲它的那一块(点子行才展开的,见 BlockSlot.item)。
|
||||
* 库规则挂在卡片子行上的子块(BlockSlot):blocks 是卡片的这些子块,render 把一行下面展开着的几块画成一层块(同块树),
|
||||
* onToggle 是点子行第一格时展开 / 收起讲它的那一块。
|
||||
*/
|
||||
export interface GridSlots {
|
||||
blocks: BlockView[]
|
||||
@@ -234,7 +234,7 @@ export function PropertyGrid({ blockId, rows, collapsed, onToggleFold, marks, sl
|
||||
onToggleFold: (id: string) => void
|
||||
/** 标差异时这张属性表改了哪些行 */
|
||||
marks?: RowsDiff
|
||||
/** 放进这张属性表里的子块(库规则的卡片),见 GridSlots */
|
||||
/** 挂在这张属性表子行上的子块(库规则的卡片),见 GridSlots */
|
||||
slots?: GridSlots
|
||||
}): ReactElement {
|
||||
const removed = (after: number): ReactElement[] => removedAt(marks?.removed, after)
|
||||
@@ -249,15 +249,15 @@ export function PropertyGrid({ blockId, rows, collapsed, onToggleFold, marks, sl
|
||||
const Chevron = folded ? ChevronRight : ChevronDown
|
||||
const mark = marks?.changed[index]
|
||||
const placed = slots?.blocks.filter(block => block.slot?.row === index) ?? []
|
||||
// 点子行才展开的子块只画展开着的;别的放进这一行的子块总是画
|
||||
const shownBlocks = placed.filter(block => block.slot?.item === undefined || !collapsed.has(block.id))
|
||||
const toggles = new Map(placed.flatMap((block): [number, ItemToggle][] => block.slot?.item === undefined
|
||||
? []
|
||||
: [[block.slot.item, { open: !collapsed.has(block.id), badge: block.badge, onToggle: () => slots?.onToggle(block) }]]))
|
||||
// 挂在子行上的子块只画展开着的
|
||||
const shownBlocks = placed.filter(block => !collapsed.has(block.id))
|
||||
const toggles = new Map(placed.flatMap((block): [number, ItemToggle][] => block.slot
|
||||
? [[block.slot.item, { open: !collapsed.has(block.id), badge: block.badge, onToggle: () => slots?.onToggle(block) }]]
|
||||
: []))
|
||||
return (
|
||||
<Fragment key={index}>
|
||||
<div className="cr-prop-row grid grid-cols-subgrid" data-id={id} data-diff={mark?.added && 'add'}>
|
||||
{layout || placed.length > 0
|
||||
{layout
|
||||
? (
|
||||
<button
|
||||
type="button"
|
||||
|
||||
Reference in new issue
Block a user