sanity-plugin-workspace-home 2.0.2 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/index.js +11 -11
- package/dist/index.js.map +1 -1
- package/package.json +14 -15
package/README.md
CHANGED
|
@@ -22,7 +22,7 @@ export default defineConfig([
|
|
|
22
22
|
workspaceHomeConfig({
|
|
23
23
|
// projectId and dataset are required, but not used by the plugin
|
|
24
24
|
projectId: 'replace-with-your-project-id',
|
|
25
|
-
dataset: 'replace-with-your-dataset-name',
|
|
25
|
+
dataset: 'replace-with-your-dataset-name',
|
|
26
26
|
}),
|
|
27
27
|
// ...all other workspaces
|
|
28
28
|
])
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DatabaseIcon, HomeIcon } from "@sanity/icons";
|
|
2
2
|
import { useActiveWorkspace, useWorkspaces, definePlugin } from "sanity";
|
|
3
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
-
import { c } from "react
|
|
4
|
+
import { c } from "react/compiler-runtime";
|
|
5
5
|
import { Card, Text, Box, Stack, Flex, Button, Hotkeys, Grid, Container, Heading, TextInput } from "@sanity/ui";
|
|
6
6
|
import { isValidElement, useState, useRef, useEffect } from "react";
|
|
7
7
|
import { styled } from "styled-components";
|
|
@@ -31,15 +31,15 @@ function WorkspacePreview(props) {
|
|
|
31
31
|
$[0] !== icon ? (t0 = createIcon(icon), $[0] = icon, $[1] = t0) : t0 = $[1];
|
|
32
32
|
const iconComponent = t0, hotKeyIndex = index + 1 === 10 ? 0 : index + 1, t1 = !!index;
|
|
33
33
|
let t2;
|
|
34
|
-
$[2] === Symbol.for("react.memo_cache_sentinel") ? (t2 = [2, 3, 4, 4], $[2] = t2) : t2 = $[2];
|
|
34
|
+
$[2] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t2 = [2, 3, 4, 4], $[2] = t2) : t2 = $[2];
|
|
35
35
|
let t3;
|
|
36
36
|
$[3] !== name || $[4] !== setActiveWorkspace ? (t3 = () => setActiveWorkspace(name), $[3] = name, $[4] = setActiveWorkspace, $[5] = t3) : t3 = $[5];
|
|
37
37
|
let t4;
|
|
38
|
-
$[6] === Symbol.for("react.memo_cache_sentinel") ? (t4 = [2, 3, 4, 4], $[6] = t4) : t4 = $[6];
|
|
38
|
+
$[6] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t4 = [2, 3, 4, 4], $[6] = t4) : t4 = $[6];
|
|
39
39
|
let t5;
|
|
40
40
|
$[7] !== iconComponent ? (t5 = iconComponent ? /* @__PURE__ */ jsx(MediaCard, { children: createIcon(iconComponent) }) : null, $[7] = iconComponent, $[8] = t5) : t5 = $[8];
|
|
41
41
|
let t6;
|
|
42
|
-
$[9] === Symbol.for("react.memo_cache_sentinel") ? (t6 = [1, 2, 3, 3], $[9] = t6) : t6 = $[9];
|
|
42
|
+
$[9] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t6 = [1, 2, 3, 3], $[9] = t6) : t6 = $[9];
|
|
43
43
|
const t7 = title || name;
|
|
44
44
|
let t8;
|
|
45
45
|
$[10] !== t7 ? (t8 = /* @__PURE__ */ jsx(Text, { size: 3, weight: "semibold", textOverflow: "ellipsis", children: t7 }), $[10] = t7, $[11] = t8) : t8 = $[11];
|
|
@@ -58,14 +58,14 @@ function WorkspacePreview(props) {
|
|
|
58
58
|
let t12;
|
|
59
59
|
$[20] !== t11 || $[21] !== t3 ? (t12 = /* @__PURE__ */ jsx(Card, { columnStart: 1, columnEnd: 4, children: /* @__PURE__ */ jsx(Stack, { children: /* @__PURE__ */ jsx(Button, { mode: "bleed", tone: "default", onClick: t3, children: t11 }) }) }), $[20] = t11, $[21] = t3, $[22] = t12) : t12 = $[22];
|
|
60
60
|
let t13;
|
|
61
|
-
$[23] === Symbol.for("react.memo_cache_sentinel") ? (t13 = /* @__PURE__ */ jsx(Text, { size: 1, weight: "semibold", children: /* @__PURE__ */ jsx(DatabaseIcon, {}) }), $[23] = t13) : t13 = $[23];
|
|
61
|
+
$[23] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t13 = /* @__PURE__ */ jsx(Text, { size: 1, weight: "semibold", children: /* @__PURE__ */ jsx(DatabaseIcon, {}) }), $[23] = t13) : t13 = $[23];
|
|
62
62
|
let t14;
|
|
63
63
|
$[24] !== dataset ? (t14 = /* @__PURE__ */ jsx(Card, { columnStart: 4, columnEnd: 5, children: /* @__PURE__ */ jsxs(Flex, { height: "fill", align: "center", gap: 2, children: [
|
|
64
64
|
t13,
|
|
65
65
|
/* @__PURE__ */ jsx(Text, { size: 1, weight: "semibold", textOverflow: "ellipsis", children: dataset })
|
|
66
66
|
] }) }), $[24] = dataset, $[25] = t14) : t14 = $[25];
|
|
67
67
|
let t15;
|
|
68
|
-
$[26] === Symbol.for("react.memo_cache_sentinel") ? (t15 = [2, 3, 3, 3], $[26] = t15) : t15 = $[26];
|
|
68
|
+
$[26] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t15 = [2, 3, 3, 3], $[26] = t15) : t15 = $[26];
|
|
69
69
|
let t16;
|
|
70
70
|
$[27] !== hotKeyIndex || $[28] !== query ? (t16 = !query && hotKeyIndex < 10 ? /* @__PURE__ */ jsx(Hotkeys, { keys: [String(hotKeyIndex)], padding: 2 }) : null, $[27] = hotKeyIndex, $[28] = query, $[29] = t16) : t16 = $[29];
|
|
71
71
|
let t17;
|
|
@@ -91,7 +91,7 @@ function WorkspaceHome() {
|
|
|
91
91
|
setActiveWorkspace
|
|
92
92
|
} = useActiveWorkspace(), [query, setQuery] = useState(""), searchInput = useRef(null);
|
|
93
93
|
let t1;
|
|
94
|
-
$[2] === Symbol.for("react.memo_cache_sentinel") ? (t1 = (e) => {
|
|
94
|
+
$[2] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t1 = (e) => {
|
|
95
95
|
setQuery(e.target.value);
|
|
96
96
|
}, $[2] = t1) : t1 = $[2];
|
|
97
97
|
const handleQuery = t1;
|
|
@@ -115,13 +115,13 @@ function WorkspaceHome() {
|
|
|
115
115
|
};
|
|
116
116
|
}, t4 = [query, workspaces, setActiveWorkspace], $[8] = query, $[9] = setActiveWorkspace, $[10] = workspaces, $[11] = t3, $[12] = t4) : (t3 = $[11], t4 = $[12]), useEffect(t3, t4);
|
|
117
117
|
let t5;
|
|
118
|
-
$[13] === Symbol.for("react.memo_cache_sentinel") ? (t5 = [4, 5, 6, 6], $[13] = t5) : t5 = $[13];
|
|
118
|
+
$[13] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t5 = [4, 5, 6, 6], $[13] = t5) : t5 = $[13];
|
|
119
119
|
let t6;
|
|
120
|
-
$[14] === Symbol.for("react.memo_cache_sentinel") ? (t6 = /* @__PURE__ */ jsx(Heading, { children: "Workspaces" }), $[14] = t6) : t6 = $[14];
|
|
120
|
+
$[14] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t6 = /* @__PURE__ */ jsx(Heading, { children: "Workspaces" }), $[14] = t6) : t6 = $[14];
|
|
121
121
|
let t7;
|
|
122
|
-
$[15] === Symbol.for("react.memo_cache_sentinel") ? (t7 = [2, 3, 4, 4], $[15] = t7) : t7 = $[15];
|
|
122
|
+
$[15] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t7 = [2, 3, 4, 4], $[15] = t7) : t7 = $[15];
|
|
123
123
|
let t8;
|
|
124
|
-
$[16] === Symbol.for("react.memo_cache_sentinel") ? (t8 = /* @__PURE__ */ jsx(Text, { size: 1, weight: "semibold", children: "Search" }), $[16] = t8) : t8 = $[16];
|
|
124
|
+
$[16] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t8 = /* @__PURE__ */ jsx(Text, { size: 1, weight: "semibold", children: "Search" }), $[16] = t8) : t8 = $[16];
|
|
125
125
|
let t9;
|
|
126
126
|
$[17] !== query ? (t9 = /* @__PURE__ */ jsxs(Stack, { space: 2, children: [
|
|
127
127
|
t8,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/components/WorkspacePreview.tsx","../src/components/WorkspaceHome.tsx","../src/index.ts"],"sourcesContent":["import {DatabaseIcon} from '@sanity/icons'\nimport {Box, Button, Card, Flex, Grid, Hotkeys, Stack, Text} from '@sanity/ui'\nimport {isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useActiveWorkspace, type WorkspaceSummary} from 'sanity'\nimport {styled} from 'styled-components'\n\nconst createIcon = (Icon: React.ComponentType | React.ReactNode) => {\n if (isValidElementType(Icon)) return <Icon />\n if (isValidElement(Icon)) return Icon\n return undefined\n}\n\nconst MediaCard = styled(Card)`\n width: 35px;\n height: 35px;\n\n svg {\n width: 100%;\n height: 100%;\n }\n`\n\nexport type WorkspacePreviewProps = {\n workspace: WorkspaceSummary\n index: number\n query: string\n}\n\nexport default function WorkspacePreview(props: WorkspacePreviewProps): React.JSX.Element {\n const {workspace, index, query} = props\n const {icon, title, name, subtitle, dataset} = workspace\n\n const {setActiveWorkspace} = useActiveWorkspace()\n const iconComponent = useMemo(() => createIcon(icon), [icon])\n\n // TODO: Favorites feature\n // get favorite workspace name from localStorage\n // const favoriteWorkspace = localStorage.getItem('favoriteWorkspace')\n // save local state to force re-render\n // const [isFavourite, setIsFavourite] = React.useState(favoriteWorkspace === name)\n\n // set favorite workspace name to localStorage\n // const setFavoriteWorkspace = useCallback(() => {\n // localStorage.setItem('favoriteWorkspace', name)\n // }, [name])\n\n const hotKeyIndex = index + 1 === 10 ? 0 : index + 1\n\n return (\n <Card borderTop={Boolean(index)} tone=\"default\">\n <Grid columns={5} gap={[2, 3, 4, 4]} paddingY={1}>\n <Card columnStart={1} columnEnd={4}>\n <Stack>\n <Button mode=\"bleed\" tone=\"default\" onClick={() => setActiveWorkspace(name)}>\n <Flex align=\"center\" gap={[2, 3, 4, 4]}>\n {iconComponent ? <MediaCard>{createIcon(iconComponent)}</MediaCard> : null}\n <Box flex={1}>\n <Stack space={[1, 2, 3, 3]}>\n <Text size={3} weight=\"semibold\" textOverflow=\"ellipsis\">\n {title || name}\n </Text>\n {subtitle ? <Text muted>{subtitle}</Text> : null}\n </Stack>\n </Box>\n </Flex>\n </Button>\n </Stack>\n </Card>\n <Card columnStart={4} columnEnd={5}>\n <Flex height=\"fill\" align=\"center\" gap={2}>\n <Text size={1} weight=\"semibold\">\n <DatabaseIcon />\n </Text>\n <Text size={1} weight=\"semibold\" textOverflow=\"ellipsis\">\n {dataset}\n </Text>\n </Flex>\n </Card>\n <Card paddingRight={[2, 3, 3, 3]}>\n <Flex height=\"fill\" align=\"center\" justify=\"flex-end\">\n {!query && hotKeyIndex < 10 ? (\n <Hotkeys keys={[String(hotKeyIndex)]} padding={2} />\n ) : null}\n </Flex>\n </Card>\n {/* <Button\n mode={isFavourite ? 'default' : 'bleed'}\n tone={isFavourite ? 'primary' : 'default'}\n icon={StarIcon}\n title=\"Favorite\"\n onClick={() => {\n setIsFavourite(!isFavourite)\n setFavoriteWorkspace()\n }}\n /> */}\n </Grid>\n </Card>\n )\n}\n","import {Box, Card, Container, Flex, Heading, Stack, Text, TextInput} from '@sanity/ui'\nimport {useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {useActiveWorkspace, useWorkspaces} from 'sanity'\nimport {styled} from 'styled-components'\n\nimport WorkspacePreview from './WorkspacePreview'\n\nconst TallCard = styled(Card)`\n min-height: 100%;\n`\n\nexport default function WorkspaceHome(): React.JSX.Element {\n const [, ...workspaces] = useWorkspaces()\n const {setActiveWorkspace} = useActiveWorkspace()\n\n // Handle search query\n const [query, setQuery] = useState('')\n const searchInput = useRef(null)\n const handleQuery = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setQuery(e.target.value)\n },\n [setQuery],\n )\n\n // filter workspaces if name, dataset or title matches query\n const filteredWorkspaces = useMemo(() => {\n return workspaces.filter((workspace) => {\n return (\n workspace.name.toLowerCase().includes(query.toLowerCase()) ||\n workspace.dataset.toLowerCase().includes(query.toLowerCase()) ||\n workspace.title.toLowerCase().includes(query.toLowerCase())\n )\n })\n }, [workspaces, query])\n\n // Listen to keypress of workspace index\n useEffect(() => {\n const handleKeypress = (event: KeyboardEvent) => {\n // Ignore if search query exists or search input is focused\n if (query || searchInput.current === document.activeElement) {\n return\n }\n\n const index = parseInt(event.key, 10) - 1\n if (index >= 0 && index < workspaces.length) {\n setActiveWorkspace(workspaces[index]!.name)\n }\n }\n\n window.addEventListener('keypress', handleKeypress)\n\n return () => {\n window.removeEventListener('keypress', handleKeypress)\n }\n }, [query, workspaces, setActiveWorkspace])\n\n return (\n <TallCard tone=\"transparent\">\n <Flex direction=\"column\" padding={[4, 5, 6, 6]}>\n <Container>\n <Stack space={4}>\n <Heading>Workspaces</Heading>\n <Card padding={[2, 3, 4, 4]} radius={3} shadow={2}>\n <Stack space={3}>\n <Stack space={2}>\n <Text size={1} weight=\"semibold\">\n Search\n </Text>\n <TextInput ref={searchInput} value={query} onChange={handleQuery} />\n </Stack>\n <Box>\n {filteredWorkspaces.map((workspace, index) => (\n <WorkspacePreview\n key={workspace.name}\n workspace={workspace}\n index={index}\n query={query}\n />\n ))}\n </Box>\n </Stack>\n </Card>\n </Stack>\n </Container>\n </Flex>\n </TallCard>\n )\n}\n","import {HomeIcon} from '@sanity/icons'\nimport {definePlugin, type WorkspaceOptions} from 'sanity'\n\nimport WorkspaceHome from './components/WorkspaceHome'\n\nexport const workspaceHome = definePlugin(() => {\n return {\n name: 'sanity-plugin-workspace-home',\n tools: [\n {\n title: 'Workspace Home',\n name: 'workspace-home',\n icon: HomeIcon,\n component: WorkspaceHome,\n },\n ],\n }\n})\n\ntype WorkspaceHomeConfigProps = {\n projectId: string\n dataset: string\n}\n\nexport const workspaceHomeConfig = ({\n projectId = ``,\n dataset = ``,\n}: WorkspaceHomeConfigProps): WorkspaceOptions => ({\n name: 'home',\n title: 'Home',\n basePath: '/home',\n projectId,\n dataset,\n icon: HomeIcon,\n plugins: [workspaceHome()],\n})\n"],"names":["createIcon","Icon","isValidElementType","isValidElement","MediaCard","styled","Card","withConfig","displayName","componentId","WorkspacePreview","props","$","_c","workspace","index","query","icon","title","name","subtitle","dataset","setActiveWorkspace","useActiveWorkspace","t0","iconComponent","hotKeyIndex","t1","Boolean","t2","Symbol","for","t3","t4","t5","t6","t7","t8","t9","t10","t11","t12","t13","t14","t15","t16","String","t17","t18","t19","TallCard","WorkspaceHome","useWorkspaces","workspaces","setQuery","useState","searchInput","useRef","e","target","value","handleQuery","toLowerCase","includes","filter","filteredWorkspaces","handleKeypress","event","current","document","activeElement","parseInt","key","length","window","addEventListener","removeEventListener","useEffect","workspace_0","index_0","map","workspaceHome","definePlugin","tools","HomeIcon","component","workspaceHomeConfig","projectId","basePath","plugins"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/components/WorkspacePreview.tsx","../src/components/WorkspaceHome.tsx","../src/index.ts"],"sourcesContent":["import {DatabaseIcon} from '@sanity/icons'\nimport {Box, Button, Card, Flex, Grid, Hotkeys, Stack, Text} from '@sanity/ui'\nimport {isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useActiveWorkspace, type WorkspaceSummary} from 'sanity'\nimport {styled} from 'styled-components'\n\nconst createIcon = (Icon: React.ComponentType | React.ReactNode) => {\n if (isValidElementType(Icon)) return <Icon />\n if (isValidElement(Icon)) return Icon\n return undefined\n}\n\nconst MediaCard = styled(Card)`\n width: 35px;\n height: 35px;\n\n svg {\n width: 100%;\n height: 100%;\n }\n`\n\nexport type WorkspacePreviewProps = {\n workspace: WorkspaceSummary\n index: number\n query: string\n}\n\nexport default function WorkspacePreview(props: WorkspacePreviewProps): React.JSX.Element {\n const {workspace, index, query} = props\n const {icon, title, name, subtitle, dataset} = workspace\n\n const {setActiveWorkspace} = useActiveWorkspace()\n const iconComponent = useMemo(() => createIcon(icon), [icon])\n\n // TODO: Favorites feature\n // get favorite workspace name from localStorage\n // const favoriteWorkspace = localStorage.getItem('favoriteWorkspace')\n // save local state to force re-render\n // const [isFavourite, setIsFavourite] = React.useState(favoriteWorkspace === name)\n\n // set favorite workspace name to localStorage\n // const setFavoriteWorkspace = useCallback(() => {\n // localStorage.setItem('favoriteWorkspace', name)\n // }, [name])\n\n const hotKeyIndex = index + 1 === 10 ? 0 : index + 1\n\n return (\n <Card borderTop={Boolean(index)} tone=\"default\">\n <Grid columns={5} gap={[2, 3, 4, 4]} paddingY={1}>\n <Card columnStart={1} columnEnd={4}>\n <Stack>\n <Button mode=\"bleed\" tone=\"default\" onClick={() => setActiveWorkspace(name)}>\n <Flex align=\"center\" gap={[2, 3, 4, 4]}>\n {iconComponent ? <MediaCard>{createIcon(iconComponent)}</MediaCard> : null}\n <Box flex={1}>\n <Stack space={[1, 2, 3, 3]}>\n <Text size={3} weight=\"semibold\" textOverflow=\"ellipsis\">\n {title || name}\n </Text>\n {subtitle ? <Text muted>{subtitle}</Text> : null}\n </Stack>\n </Box>\n </Flex>\n </Button>\n </Stack>\n </Card>\n <Card columnStart={4} columnEnd={5}>\n <Flex height=\"fill\" align=\"center\" gap={2}>\n <Text size={1} weight=\"semibold\">\n <DatabaseIcon />\n </Text>\n <Text size={1} weight=\"semibold\" textOverflow=\"ellipsis\">\n {dataset}\n </Text>\n </Flex>\n </Card>\n <Card paddingRight={[2, 3, 3, 3]}>\n <Flex height=\"fill\" align=\"center\" justify=\"flex-end\">\n {!query && hotKeyIndex < 10 ? (\n <Hotkeys keys={[String(hotKeyIndex)]} padding={2} />\n ) : null}\n </Flex>\n </Card>\n {/* <Button\n mode={isFavourite ? 'default' : 'bleed'}\n tone={isFavourite ? 'primary' : 'default'}\n icon={StarIcon}\n title=\"Favorite\"\n onClick={() => {\n setIsFavourite(!isFavourite)\n setFavoriteWorkspace()\n }}\n /> */}\n </Grid>\n </Card>\n )\n}\n","import {Box, Card, Container, Flex, Heading, Stack, Text, TextInput} from '@sanity/ui'\nimport {useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {useActiveWorkspace, useWorkspaces} from 'sanity'\nimport {styled} from 'styled-components'\n\nimport WorkspacePreview from './WorkspacePreview'\n\nconst TallCard = styled(Card)`\n min-height: 100%;\n`\n\nexport default function WorkspaceHome(): React.JSX.Element {\n const [, ...workspaces] = useWorkspaces()\n const {setActiveWorkspace} = useActiveWorkspace()\n\n // Handle search query\n const [query, setQuery] = useState('')\n const searchInput = useRef(null)\n const handleQuery = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setQuery(e.target.value)\n },\n [setQuery],\n )\n\n // filter workspaces if name, dataset or title matches query\n const filteredWorkspaces = useMemo(() => {\n return workspaces.filter((workspace) => {\n return (\n workspace.name.toLowerCase().includes(query.toLowerCase()) ||\n workspace.dataset.toLowerCase().includes(query.toLowerCase()) ||\n workspace.title.toLowerCase().includes(query.toLowerCase())\n )\n })\n }, [workspaces, query])\n\n // Listen to keypress of workspace index\n useEffect(() => {\n const handleKeypress = (event: KeyboardEvent) => {\n // Ignore if search query exists or search input is focused\n if (query || searchInput.current === document.activeElement) {\n return\n }\n\n const index = parseInt(event.key, 10) - 1\n if (index >= 0 && index < workspaces.length) {\n setActiveWorkspace(workspaces[index]!.name)\n }\n }\n\n window.addEventListener('keypress', handleKeypress)\n\n return () => {\n window.removeEventListener('keypress', handleKeypress)\n }\n }, [query, workspaces, setActiveWorkspace])\n\n return (\n <TallCard tone=\"transparent\">\n <Flex direction=\"column\" padding={[4, 5, 6, 6]}>\n <Container>\n <Stack space={4}>\n <Heading>Workspaces</Heading>\n <Card padding={[2, 3, 4, 4]} radius={3} shadow={2}>\n <Stack space={3}>\n <Stack space={2}>\n <Text size={1} weight=\"semibold\">\n Search\n </Text>\n <TextInput ref={searchInput} value={query} onChange={handleQuery} />\n </Stack>\n <Box>\n {filteredWorkspaces.map((workspace, index) => (\n <WorkspacePreview\n key={workspace.name}\n workspace={workspace}\n index={index}\n query={query}\n />\n ))}\n </Box>\n </Stack>\n </Card>\n </Stack>\n </Container>\n </Flex>\n </TallCard>\n )\n}\n","import {HomeIcon} from '@sanity/icons'\nimport {definePlugin, type WorkspaceOptions} from 'sanity'\n\nimport WorkspaceHome from './components/WorkspaceHome'\n\nexport const workspaceHome = definePlugin(() => {\n return {\n name: 'sanity-plugin-workspace-home',\n tools: [\n {\n title: 'Workspace Home',\n name: 'workspace-home',\n icon: HomeIcon,\n component: WorkspaceHome,\n },\n ],\n }\n})\n\ntype WorkspaceHomeConfigProps = {\n projectId: string\n dataset: string\n}\n\nexport const workspaceHomeConfig = ({\n projectId = ``,\n dataset = ``,\n}: WorkspaceHomeConfigProps): WorkspaceOptions => ({\n name: 'home',\n title: 'Home',\n basePath: '/home',\n projectId,\n dataset,\n icon: HomeIcon,\n plugins: [workspaceHome()],\n})\n"],"names":["createIcon","Icon","isValidElementType","isValidElement","MediaCard","styled","Card","withConfig","displayName","componentId","WorkspacePreview","props","$","_c","workspace","index","query","icon","title","name","subtitle","dataset","setActiveWorkspace","useActiveWorkspace","t0","iconComponent","hotKeyIndex","t1","Boolean","t2","Symbol","for","t3","t4","t5","t6","t7","t8","t9","t10","t11","t12","t13","t14","t15","t16","String","t17","t18","t19","TallCard","WorkspaceHome","useWorkspaces","workspaces","setQuery","useState","searchInput","useRef","e","target","value","handleQuery","toLowerCase","includes","filter","filteredWorkspaces","handleKeypress","event","current","document","activeElement","parseInt","key","length","window","addEventListener","removeEventListener","useEffect","workspace_0","index_0","map","workspaceHome","definePlugin","tools","HomeIcon","component","workspaceHomeConfig","projectId","basePath","plugins"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sanity-plugin-workspace-home",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "A home screen for your multi-workspace Sanity Studio",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"sanity",
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
"url": "git+ssh://git@github.com/sanity-io/plugins.git",
|
|
16
16
|
"directory": "plugins/sanity-plugin-workspace-home"
|
|
17
17
|
},
|
|
18
|
-
"license": "MIT",
|
|
19
18
|
"author": "Sanity <hello@sanity.io>",
|
|
19
|
+
"license": "MIT",
|
|
20
20
|
"type": "module",
|
|
21
21
|
"exports": {
|
|
22
22
|
".": "./dist/index.js",
|
|
@@ -30,26 +30,26 @@
|
|
|
30
30
|
"@sanity/icons": "^3.7.4",
|
|
31
31
|
"@sanity/ui": "^3.1.11",
|
|
32
32
|
"react-compiler-runtime": "^1.0.0",
|
|
33
|
-
"react-is": "^19.2.
|
|
33
|
+
"react-is": "^19.2.3"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
|
-
"@sanity/pkg-utils": "^10.
|
|
36
|
+
"@sanity/pkg-utils": "^10.2.1",
|
|
37
37
|
"@types/react": "^19.2.7",
|
|
38
38
|
"@types/react-is": "^19.2.0",
|
|
39
|
-
"@typescript/native-preview": "7.0.0-dev.
|
|
39
|
+
"@typescript/native-preview": "7.0.0-dev.20251216.1",
|
|
40
40
|
"babel-plugin-react-compiler": "^1.0.0",
|
|
41
41
|
"babel-plugin-styled-components": "^2.1.4",
|
|
42
|
-
"eslint": "^9.39.
|
|
43
|
-
"react": "^19.2.
|
|
44
|
-
"sanity": "^
|
|
42
|
+
"eslint": "^9.39.2",
|
|
43
|
+
"react": "^19.2.3",
|
|
44
|
+
"sanity": "^5.0.0",
|
|
45
45
|
"typescript": "5.9.3",
|
|
46
|
-
"@repo/eslint-config": "0.0.
|
|
47
|
-
"@repo/
|
|
48
|
-
"@repo/
|
|
46
|
+
"@repo/eslint-config": "0.0.7",
|
|
47
|
+
"@repo/tsconfig": "1.0.0",
|
|
48
|
+
"@repo/package.config": "0.0.0"
|
|
49
49
|
},
|
|
50
50
|
"peerDependencies": {
|
|
51
|
-
"react": "^
|
|
52
|
-
"sanity": "^
|
|
51
|
+
"react": "^19.2",
|
|
52
|
+
"sanity": "^5.0.0-0",
|
|
53
53
|
"styled-components": "^6.1"
|
|
54
54
|
},
|
|
55
55
|
"engines": {
|
|
@@ -57,7 +57,6 @@
|
|
|
57
57
|
},
|
|
58
58
|
"scripts": {
|
|
59
59
|
"build": "pkg build --strict --check --clean",
|
|
60
|
-
"lint": "eslint ."
|
|
61
|
-
"typecheck": "(cd ../.. && tsgo --project plugins/sanity-plugin-workspace-home/tsconfig.json)"
|
|
60
|
+
"lint": "eslint ."
|
|
62
61
|
}
|
|
63
62
|
}
|