diff --git a/code.tsx b/code.tsx
index 8974bfe..d5f35d0 100644
--- a/code.tsx
+++ b/code.tsx
@@ -59,6 +59,7 @@ function getKeyDecorator(column: Column): KeyDecorator {
function DatabaseTableWidget() {
const [theme, setTheme] = useSyncedState("theme", "#000c86")
+ const [collapsed, setCollapsed] = useSyncedState("collapsed", false)
const [tableName, setTableName] = useSyncedState("tableName", null)
const [columns, setColumns] = useSyncedState("columns", (): Column[] => [])
@@ -92,6 +93,11 @@ function DatabaseTableWidget() {
tooltip: "Edit table",
propertyName: "edit",
},
+ {
+ itemType: "action",
+ tooltip: collapsed ? "Expand" : "Collapse",
+ propertyName: "collapse",
+ },
],
({ propertyName, propertyValue }) => {
switch (propertyName) {
@@ -107,6 +113,8 @@ function DatabaseTableWidget() {
})
figma.ui.postMessage(columns)
})
+ case "collapse":
+ return setCollapsed((state) => !state)
}
}
)
@@ -143,50 +151,75 @@ function DatabaseTableWidget() {
/>
- {columns.map((column) => {
- let { icon, color } = getKeyDecorator(column)
-
- return (
+ {
+ collapsed ? (
setCollapsed(false)}
>
- {icon}
-
-
- {column.name}
-
-
- {column.type}{column.nullable ? "?" : ""}
+ {columns.length} collapsed fields. Click to reveal
- )
- })}
+ ) : columns.map((column) => {
+ let { icon, color } = getKeyDecorator(column)
+
+ return (
+
+
+ {icon}
+
+
+ {column.name}
+
+
+ {column.type}{column.nullable ? "?" : ""}
+
+
+ )
+ })
+ }
)
}