@dxos/plugin-debug 0.8.4-main.c1de068 → 0.8.4-main.c85a9c8dae
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/dist/lib/browser/DebugGraph-7HXJ2PS2.mjs +16 -0
- package/dist/lib/browser/DebugGraph-7HXJ2PS2.mjs.map +7 -0
- package/dist/lib/browser/DebugObjectPanel-3TCDNUNW.mjs +33 -0
- package/dist/lib/browser/DebugObjectPanel-3TCDNUNW.mjs.map +7 -0
- package/dist/lib/browser/DebugSettings-JZMIUDYB.mjs +174 -0
- package/dist/lib/browser/DebugSettings-JZMIUDYB.mjs.map +7 -0
- package/dist/lib/browser/DebugSpaceObjectsPanel-7NRPLWZ4.mjs +50 -0
- package/dist/lib/browser/DebugSpaceObjectsPanel-7NRPLWZ4.mjs.map +7 -0
- package/dist/lib/browser/DebugStatus-COQGH37G.mjs +125 -0
- package/dist/lib/browser/DebugStatus-COQGH37G.mjs.map +7 -0
- package/dist/lib/browser/DevtoolsOverviewContainer-C75NFVER.mjs +20 -0
- package/dist/lib/browser/DevtoolsOverviewContainer-C75NFVER.mjs.map +7 -0
- package/dist/lib/browser/{SpaceGenerator-AG3XGNMV.mjs → SpaceGenerator-SWSGJEEL.mjs} +573 -382
- package/dist/lib/browser/SpaceGenerator-SWSGJEEL.mjs.map +7 -0
- package/dist/lib/browser/Wireframe-KAGOKEFW.mjs +53 -0
- package/dist/lib/browser/Wireframe-KAGOKEFW.mjs.map +7 -0
- package/dist/lib/browser/app-graph-builder-LGUQNXHD.mjs +625 -0
- package/dist/lib/browser/app-graph-builder-LGUQNXHD.mjs.map +7 -0
- package/dist/lib/browser/{chunk-AJA6RYN3.mjs → chunk-4UFQXPP7.mjs} +12 -2
- package/dist/lib/browser/chunk-4UFQXPP7.mjs.map +7 -0
- package/dist/lib/browser/chunk-A5H5GRV6.mjs +20 -0
- package/dist/lib/browser/chunk-A5H5GRV6.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +43 -41
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react-context-I3USIAF6.mjs +17 -0
- package/dist/lib/browser/react-context-I3USIAF6.mjs.map +7 -0
- package/dist/lib/browser/react-surface-BTVNKKVQ.mjs +443 -0
- package/dist/lib/browser/react-surface-BTVNKKVQ.mjs.map +7 -0
- package/dist/lib/browser/settings-SLTQJJNF.mjs +32 -0
- package/dist/lib/browser/settings-SLTQJJNF.mjs.map +7 -0
- package/dist/types/src/DebugPlugin.d.ts +7 -1
- package/dist/types/src/DebugPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +4 -8
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-context/index.d.ts +7 -0
- package/dist/types/src/capabilities/react-context/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-context/react-context.d.ts +10 -0
- package/dist/types/src/capabilities/react-context/react-context.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface/index.d.ts +5 -0
- package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts +9 -0
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
- package/dist/types/src/capabilities/settings/index.d.ts +3 -0
- package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/settings/settings.d.ts +6 -0
- package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
- package/dist/types/src/components/SchemaTable/SchemaTable.d.ts.map +1 -0
- package/dist/types/src/components/SchemaTable/index.d.ts +2 -0
- package/dist/types/src/components/SchemaTable/index.d.ts.map +1 -0
- package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts +5 -5
- package/dist/types/src/components/SpaceGenerator/ObjectGenerator.d.ts.map +1 -1
- package/dist/types/src/components/SpaceGenerator/draw-util.d.ts.map +1 -1
- package/dist/types/src/components/SpaceGenerator/index.d.ts +2 -2
- package/dist/types/src/components/SpaceGenerator/index.d.ts.map +1 -1
- package/dist/types/src/components/SpaceGenerator/presets.d.ts +4 -4
- package/dist/types/src/components/SpaceGenerator/presets.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +2 -9
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts +8 -0
- package/dist/types/src/containers/DebugGraph/DebugGraph.d.ts.map +1 -0
- package/dist/types/src/containers/DebugGraph/index.d.ts +3 -0
- package/dist/types/src/containers/DebugGraph/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers/DebugObjectPanel}/DebugObjectPanel.d.ts +2 -2
- package/dist/types/src/containers/DebugObjectPanel/DebugObjectPanel.d.ts.map +1 -0
- package/dist/types/src/containers/DebugObjectPanel/index.d.ts +3 -0
- package/dist/types/src/containers/DebugObjectPanel/index.d.ts.map +1 -0
- package/dist/types/src/containers/DebugSettings/DebugSettings.d.ts +10 -0
- package/dist/types/src/containers/DebugSettings/DebugSettings.d.ts.map +1 -0
- package/dist/types/src/containers/DebugSettings/index.d.ts +3 -0
- package/dist/types/src/containers/DebugSettings/index.d.ts.map +1 -0
- package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts +3 -0
- package/dist/types/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.d.ts.map +1 -0
- package/dist/types/src/containers/DebugSpaceObjectsPanel/index.d.ts +3 -0
- package/dist/types/src/containers/DebugSpaceObjectsPanel/index.d.ts.map +1 -0
- package/dist/types/src/containers/DebugStatus/DebugStatus.d.ts.map +1 -0
- package/dist/types/src/containers/DebugStatus/index.d.ts +3 -0
- package/dist/types/src/containers/DebugStatus/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers/DevtoolsOverviewContainer}/DevtoolsOverviewContainer.d.ts +0 -1
- package/dist/types/src/containers/DevtoolsOverviewContainer/DevtoolsOverviewContainer.d.ts.map +1 -0
- package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts +3 -0
- package/dist/types/src/containers/DevtoolsOverviewContainer/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers}/SpaceGenerator/SpaceGenerator.d.ts +2 -2
- package/dist/types/src/containers/SpaceGenerator/SpaceGenerator.d.ts.map +1 -0
- package/dist/types/src/containers/SpaceGenerator/index.d.ts +3 -0
- package/dist/types/src/containers/SpaceGenerator/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers/Wireframe}/Wireframe.d.ts +2 -2
- package/dist/types/src/containers/Wireframe/Wireframe.d.ts.map +1 -0
- package/dist/types/src/containers/Wireframe/index.d.ts +3 -0
- package/dist/types/src/containers/Wireframe/index.d.ts.map +1 -0
- package/dist/types/src/containers/index.d.ts +10 -0
- package/dist/types/src/containers/index.d.ts.map +1 -0
- package/dist/types/src/meta.d.ts +2 -3
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +5 -1
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types.d.ts +6 -1
- package/dist/types/src/types.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +76 -67
- package/src/DebugPlugin.tsx +27 -32
- package/src/capabilities/app-graph-builder/app-graph-builder.ts +441 -0
- package/src/capabilities/app-graph-builder/index.ts +7 -0
- package/src/capabilities/index.ts +4 -6
- package/src/capabilities/react-context/index.ts +7 -0
- package/src/capabilities/react-context/react-context.tsx +20 -0
- package/src/capabilities/react-surface/index.ts +7 -0
- package/src/capabilities/react-surface/react-surface.tsx +428 -0
- package/src/capabilities/settings/index.ts +7 -0
- package/src/capabilities/settings/settings.ts +31 -0
- package/src/components/SchemaTable/index.ts +5 -0
- package/src/components/SpaceGenerator/ObjectGenerator.tsx +32 -38
- package/src/components/SpaceGenerator/draw-util.ts +5 -5
- package/src/components/SpaceGenerator/index.ts +2 -3
- package/src/components/SpaceGenerator/presets.ts +337 -53
- package/src/components/index.ts +2 -10
- package/src/containers/DebugGraph/DebugGraph.tsx +13 -0
- package/src/containers/DebugGraph/index.ts +7 -0
- package/src/containers/DebugObjectPanel/DebugObjectPanel.tsx +45 -0
- package/src/containers/DebugObjectPanel/index.ts +7 -0
- package/src/containers/DebugSettings/DebugSettings.tsx +201 -0
- package/src/containers/DebugSettings/index.ts +7 -0
- package/src/containers/DebugSpaceObjectsPanel/DebugSpaceObjectsPanel.tsx +60 -0
- package/src/containers/DebugSpaceObjectsPanel/index.ts +7 -0
- package/src/{components → containers/DebugStatus}/DebugStatus.tsx +2 -2
- package/src/containers/DebugStatus/index.ts +7 -0
- package/src/{components → containers/DevtoolsOverviewContainer}/DevtoolsOverviewContainer.tsx +2 -4
- package/src/containers/DevtoolsOverviewContainer/index.ts +7 -0
- package/src/containers/SpaceGenerator/SpaceGenerator.tsx +127 -0
- package/src/containers/SpaceGenerator/index.ts +7 -0
- package/src/{components → containers/Wireframe}/Wireframe.tsx +7 -7
- package/src/containers/Wireframe/index.ts +7 -0
- package/src/containers/index.ts +14 -0
- package/src/meta.ts +8 -7
- package/src/translations.ts +5 -1
- package/src/types.ts +9 -1
- package/dist/lib/browser/DebugApp-ZDL4CPY5.mjs +0 -228
- package/dist/lib/browser/DebugApp-ZDL4CPY5.mjs.map +0 -7
- package/dist/lib/browser/DevtoolsOverviewContainer-EPD6EWT5.mjs +0 -25
- package/dist/lib/browser/DevtoolsOverviewContainer-EPD6EWT5.mjs.map +0 -7
- package/dist/lib/browser/SpaceGenerator-AG3XGNMV.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-SQXFD2BL.mjs +0 -597
- package/dist/lib/browser/app-graph-builder-SQXFD2BL.mjs.map +0 -7
- package/dist/lib/browser/chunk-5XPIRNQS.mjs +0 -18
- package/dist/lib/browser/chunk-5XPIRNQS.mjs.map +0 -7
- package/dist/lib/browser/chunk-AJA6RYN3.mjs.map +0 -7
- package/dist/lib/browser/react-context-NVAGLAJD.mjs +0 -16
- package/dist/lib/browser/react-context-NVAGLAJD.mjs.map +0 -7
- package/dist/lib/browser/react-surface-3GD2OWCA.mjs +0 -768
- package/dist/lib/browser/react-surface-3GD2OWCA.mjs.map +0 -7
- package/dist/lib/browser/settings-LSSWLM5I.mjs +0 -22
- package/dist/lib/browser/settings-LSSWLM5I.mjs.map +0 -7
- package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-context.d.ts +0 -8
- package/dist/types/src/capabilities/react-context.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-surface.d.ts +0 -4
- package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
- package/dist/types/src/capabilities/settings.d.ts +0 -4
- package/dist/types/src/capabilities/settings.d.ts.map +0 -1
- package/dist/types/src/components/Container.d.ts +0 -5
- package/dist/types/src/components/Container.d.ts.map +0 -1
- package/dist/types/src/components/DebugApp/DebugApp.d.ts +0 -6
- package/dist/types/src/components/DebugApp/DebugApp.d.ts.map +0 -1
- package/dist/types/src/components/DebugApp/Tree.d.ts +0 -18
- package/dist/types/src/components/DebugApp/Tree.d.ts.map +0 -1
- package/dist/types/src/components/DebugApp/index.d.ts +0 -3
- package/dist/types/src/components/DebugApp/index.d.ts.map +0 -1
- package/dist/types/src/components/DebugObjectPanel.d.ts.map +0 -1
- package/dist/types/src/components/DebugSettings.d.ts +0 -6
- package/dist/types/src/components/DebugSettings.d.ts.map +0 -1
- package/dist/types/src/components/DebugStatus.d.ts.map +0 -1
- package/dist/types/src/components/DevtoolsOverviewContainer.d.ts.map +0 -1
- package/dist/types/src/components/SpaceGenerator/SchemaTable.d.ts.map +0 -1
- package/dist/types/src/components/SpaceGenerator/SpaceGenerator.d.ts.map +0 -1
- package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts +0 -6
- package/dist/types/src/components/SpaceGenerator/SpaceGenerator.stories.d.ts.map +0 -1
- package/dist/types/src/components/Wireframe.d.ts.map +0 -1
- package/src/capabilities/app-graph-builder.ts +0 -457
- package/src/capabilities/react-context.tsx +0 -16
- package/src/capabilities/react-surface.tsx +0 -397
- package/src/capabilities/settings.ts +0 -19
- package/src/components/Container.tsx +0 -15
- package/src/components/DebugApp/DebugApp.tsx +0 -84
- package/src/components/DebugApp/Tree.tsx +0 -103
- package/src/components/DebugApp/index.ts +0 -7
- package/src/components/DebugObjectPanel.tsx +0 -35
- package/src/components/DebugSettings.tsx +0 -151
- package/src/components/SpaceGenerator/SpaceGenerator.stories.tsx +0 -52
- package/src/components/SpaceGenerator/SpaceGenerator.tsx +0 -122
- /package/dist/types/src/components/{SpaceGenerator → SchemaTable}/SchemaTable.d.ts +0 -0
- /package/dist/types/src/{components → containers/DebugStatus}/DebugStatus.d.ts +0 -0
- /package/src/components/{SpaceGenerator → SchemaTable}/SchemaTable.tsx +0 -0
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2023 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import React, { useEffect, useState } from 'react';
|
|
6
|
-
|
|
7
|
-
import { Capabilities, useCapabilities } from '@dxos/app-framework';
|
|
8
|
-
import { type ConfigProto, defs, SaveConfig, Storage } from '@dxos/config';
|
|
9
|
-
import { log } from '@dxos/log';
|
|
10
|
-
import { useClient } from '@dxos/react-client';
|
|
11
|
-
import { useTranslation, Button, Toast, Input, useFileDownload, Select, Icon } from '@dxos/react-ui';
|
|
12
|
-
import { DeprecatedFormContainer, DeprecatedFormInput } from '@dxos/react-ui-form';
|
|
13
|
-
import { setDeep } from '@dxos/util';
|
|
14
|
-
|
|
15
|
-
import { DEBUG_PLUGIN } from '../meta';
|
|
16
|
-
import { type DebugSettingsProps } from '../types';
|
|
17
|
-
|
|
18
|
-
type Toast = {
|
|
19
|
-
title: string;
|
|
20
|
-
description?: string;
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
const StorageAdapters = {
|
|
24
|
-
opfs: defs.Runtime.Client.Storage.StorageDriver.WEBFS,
|
|
25
|
-
idb: defs.Runtime.Client.Storage.StorageDriver.IDB,
|
|
26
|
-
} as const;
|
|
27
|
-
|
|
28
|
-
export const DebugSettings = ({ settings }: { settings: DebugSettingsProps }) => {
|
|
29
|
-
const { t } = useTranslation(DEBUG_PLUGIN);
|
|
30
|
-
const [toast, setToast] = useState<Toast>();
|
|
31
|
-
const client = useClient();
|
|
32
|
-
const download = useFileDownload();
|
|
33
|
-
// TODO(mykola): Get updates from other places that change Config.
|
|
34
|
-
const [storageConfig, setStorageConfig] = useState<ConfigProto>({});
|
|
35
|
-
const [upload] = useCapabilities(Capabilities.FileUploader);
|
|
36
|
-
|
|
37
|
-
useEffect(() => {
|
|
38
|
-
void Storage().then((config) => setStorageConfig(config));
|
|
39
|
-
}, []);
|
|
40
|
-
|
|
41
|
-
const handleToast = (toast: Toast) => {
|
|
42
|
-
setToast(toast);
|
|
43
|
-
const t = setTimeout(() => setToast(undefined), 5_000);
|
|
44
|
-
return () => clearTimeout(t);
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
const handleDownload = async () => {
|
|
48
|
-
const data = await client.diagnostics();
|
|
49
|
-
const file = new Blob([JSON.stringify(data, undefined, 2)], { type: 'text/plain' });
|
|
50
|
-
const fileName = `composer-${new Date().toISOString().replace(/\W/g, '-')}.json`;
|
|
51
|
-
download(file, fileName);
|
|
52
|
-
|
|
53
|
-
if (upload) {
|
|
54
|
-
const info = await upload(new File([file], fileName), client.spaces.default);
|
|
55
|
-
if (!info) {
|
|
56
|
-
log.error('diagnostics failed to upload to IPFS');
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
handleToast({ title: t('settings uploaded'), description: t('settings uploaded to clipboard') });
|
|
60
|
-
|
|
61
|
-
// TODO(nf): move to IpfsPlugin?
|
|
62
|
-
const url = client.config.values.runtime!.services!.ipfs!.gateway + '/' + info.cid;
|
|
63
|
-
void navigator.clipboard.writeText(url);
|
|
64
|
-
handleToast({ title: t('settings uploaded'), description: t('settings uploaded to clipboard') });
|
|
65
|
-
log.info('diagnostics', { url });
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
const handleRepair = async () => {
|
|
70
|
-
try {
|
|
71
|
-
const info = await client.repair();
|
|
72
|
-
setStorageConfig(await Storage());
|
|
73
|
-
handleToast({ title: t('settings repair success'), description: JSON.stringify(info, undefined, 2) });
|
|
74
|
-
} catch (err: any) {
|
|
75
|
-
handleToast({ title: t('settings repair failed'), description: err.message });
|
|
76
|
-
}
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
return (
|
|
80
|
-
<DeprecatedFormContainer>
|
|
81
|
-
<DeprecatedFormInput label={t('settings wireframe')}>
|
|
82
|
-
<Input.Switch checked={settings.wireframe} onCheckedChange={(checked) => (settings.wireframe = !!checked)} />
|
|
83
|
-
</DeprecatedFormInput>
|
|
84
|
-
<DeprecatedFormInput label={t('settings download diagnostics')}>
|
|
85
|
-
<Button onClick={handleDownload}>
|
|
86
|
-
<Icon icon='ph--download-simple--regular' size={5} />
|
|
87
|
-
</Button>
|
|
88
|
-
</DeprecatedFormInput>
|
|
89
|
-
<DeprecatedFormInput label={t('settings repair')}>
|
|
90
|
-
<Button onClick={handleRepair}>
|
|
91
|
-
<Icon icon='ph--first-aid-kit--regular' size={5} />
|
|
92
|
-
</Button>
|
|
93
|
-
</DeprecatedFormInput>
|
|
94
|
-
|
|
95
|
-
{/* TODO(burdon): Move to layout? */}
|
|
96
|
-
{toast && (
|
|
97
|
-
<Toast.Root>
|
|
98
|
-
<Toast.Body>
|
|
99
|
-
<Toast.Title>
|
|
100
|
-
<Icon icon='ph--gift--duotone' size={5} classNames='inline mr-1' />
|
|
101
|
-
<span>{toast.title}</span>
|
|
102
|
-
</Toast.Title>
|
|
103
|
-
{toast.description && <Toast.Description>{toast.description}</Toast.Description>}
|
|
104
|
-
</Toast.Body>
|
|
105
|
-
</Toast.Root>
|
|
106
|
-
)}
|
|
107
|
-
|
|
108
|
-
<DeprecatedFormInput label={t('settings choose storage adaptor')}>
|
|
109
|
-
<Select.Root
|
|
110
|
-
value={
|
|
111
|
-
Object.entries(StorageAdapters).find(
|
|
112
|
-
([name, value]) => value === storageConfig?.runtime?.client?.storage?.dataStore,
|
|
113
|
-
)?.[0]
|
|
114
|
-
}
|
|
115
|
-
onValueChange={(value) => {
|
|
116
|
-
if (confirm(t('settings storage adapter changed alert'))) {
|
|
117
|
-
updateConfig(
|
|
118
|
-
storageConfig,
|
|
119
|
-
setStorageConfig,
|
|
120
|
-
['runtime', 'client', 'storage', 'dataStore'],
|
|
121
|
-
StorageAdapters[value as keyof typeof StorageAdapters],
|
|
122
|
-
);
|
|
123
|
-
}
|
|
124
|
-
}}
|
|
125
|
-
>
|
|
126
|
-
<Select.TriggerButton placeholder={t('settings data store label')} />
|
|
127
|
-
<Select.Portal>
|
|
128
|
-
<Select.Content>
|
|
129
|
-
<Select.Viewport>
|
|
130
|
-
{Object.keys(StorageAdapters).map((key) => (
|
|
131
|
-
<Select.Option key={key} value={key}>
|
|
132
|
-
{t(`settings storage adaptor ${key} label`)}
|
|
133
|
-
</Select.Option>
|
|
134
|
-
))}
|
|
135
|
-
</Select.Viewport>
|
|
136
|
-
</Select.Content>
|
|
137
|
-
</Select.Portal>
|
|
138
|
-
</Select.Root>
|
|
139
|
-
</DeprecatedFormInput>
|
|
140
|
-
</DeprecatedFormContainer>
|
|
141
|
-
);
|
|
142
|
-
};
|
|
143
|
-
|
|
144
|
-
const updateConfig = (config: ConfigProto, setConfig: (newConfig: ConfigProto) => void, path: string[], value: any) => {
|
|
145
|
-
const storageConfigCopy = JSON.parse(JSON.stringify(config ?? {}));
|
|
146
|
-
setDeep(storageConfigCopy, path, value);
|
|
147
|
-
setConfig(storageConfigCopy);
|
|
148
|
-
queueMicrotask(async () => {
|
|
149
|
-
await SaveConfig(storageConfigCopy);
|
|
150
|
-
});
|
|
151
|
-
};
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2023 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import '@dxos-theme';
|
|
6
|
-
|
|
7
|
-
import { type Meta } from '@storybook/react-vite';
|
|
8
|
-
import React from 'react';
|
|
9
|
-
|
|
10
|
-
import { IntentPlugin } from '@dxos/app-framework';
|
|
11
|
-
import { withPluginManager } from '@dxos/app-framework/testing';
|
|
12
|
-
import { ClientPlugin } from '@dxos/plugin-client';
|
|
13
|
-
import { useSpaces } from '@dxos/react-client/echo';
|
|
14
|
-
import { render, withLayout, withTheme } from '@dxos/storybook-utils';
|
|
15
|
-
|
|
16
|
-
import { SpaceGenerator } from './SpaceGenerator';
|
|
17
|
-
|
|
18
|
-
const DefaultStory = () => {
|
|
19
|
-
const [space] = useSpaces();
|
|
20
|
-
if (!space) {
|
|
21
|
-
return null;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
return <SpaceGenerator space={space} />;
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
const meta: Meta = {
|
|
28
|
-
title: 'plugins/plugin-debug/SpaceGenerator',
|
|
29
|
-
component: SpaceGenerator,
|
|
30
|
-
render: render(DefaultStory),
|
|
31
|
-
decorators: [
|
|
32
|
-
withPluginManager({
|
|
33
|
-
plugins: [
|
|
34
|
-
ClientPlugin({
|
|
35
|
-
onClientInitialized: async (_, client) => {
|
|
36
|
-
await client.halo.createIdentity();
|
|
37
|
-
},
|
|
38
|
-
}),
|
|
39
|
-
IntentPlugin(),
|
|
40
|
-
],
|
|
41
|
-
}),
|
|
42
|
-
withLayout(),
|
|
43
|
-
withTheme,
|
|
44
|
-
],
|
|
45
|
-
parameters: {
|
|
46
|
-
layout: 'fullscreen',
|
|
47
|
-
},
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
export default meta;
|
|
51
|
-
|
|
52
|
-
export const Default = {};
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2024 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import React, { useCallback, useMemo, useState } from 'react';
|
|
6
|
-
|
|
7
|
-
import { useIntentDispatcher } from '@dxos/app-framework';
|
|
8
|
-
import { ComputeGraph } from '@dxos/conductor';
|
|
9
|
-
import { Filter, type Obj } from '@dxos/echo';
|
|
10
|
-
import { DocumentType } from '@dxos/plugin-markdown/types';
|
|
11
|
-
import { SheetType } from '@dxos/plugin-sheet/types';
|
|
12
|
-
import { DiagramType } from '@dxos/plugin-sketch/types';
|
|
13
|
-
import { useClient } from '@dxos/react-client';
|
|
14
|
-
import { getTypename, type Space } from '@dxos/react-client/echo';
|
|
15
|
-
import { IconButton, Input, Toolbar, useAsyncEffect } from '@dxos/react-ui';
|
|
16
|
-
import { SyntaxHighlighter } from '@dxos/react-ui-syntax-highlighter';
|
|
17
|
-
import { DataType } from '@dxos/schema';
|
|
18
|
-
import { jsonKeyReplacer, sortKeys } from '@dxos/util';
|
|
19
|
-
|
|
20
|
-
import { createGenerator, staticGenerators, type ObjectGenerator } from './ObjectGenerator';
|
|
21
|
-
import { SchemaTable } from './SchemaTable';
|
|
22
|
-
import { generator } from './presets';
|
|
23
|
-
|
|
24
|
-
export type SpaceGeneratorProps = {
|
|
25
|
-
space: Space;
|
|
26
|
-
onCreateObjects?: (objects: Obj.Any[]) => void;
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
export const SpaceGenerator = ({ space, onCreateObjects }: SpaceGeneratorProps) => {
|
|
30
|
-
const { dispatchPromise: dispatch } = useIntentDispatcher();
|
|
31
|
-
const client = useClient();
|
|
32
|
-
const staticTypes = [DocumentType, DiagramType, SheetType, ComputeGraph]; // TODO(burdon): Make extensible.
|
|
33
|
-
const recordTypes = [DataType.Organization, DataType.Project, DataType.Person, DataType.Message];
|
|
34
|
-
const [count, setCount] = useState(1);
|
|
35
|
-
const [info, setInfo] = useState<any>({});
|
|
36
|
-
const presets = useMemo(() => generator(), []);
|
|
37
|
-
|
|
38
|
-
// Create type generators.
|
|
39
|
-
const typeMap = useMemo(() => {
|
|
40
|
-
client.addTypes([...staticTypes, ...recordTypes, ...presets.schemas]);
|
|
41
|
-
const recordGenerators = new Map<string, ObjectGenerator<any>>(
|
|
42
|
-
recordTypes.map((type) => [type.typename, createGenerator(client, dispatch, type as any)]),
|
|
43
|
-
);
|
|
44
|
-
|
|
45
|
-
return new Map([...staticGenerators, ...presets.items, ...recordGenerators]);
|
|
46
|
-
}, [client, recordTypes]);
|
|
47
|
-
|
|
48
|
-
// Query space to get info.
|
|
49
|
-
const updateInfo = async () => {
|
|
50
|
-
// Create schema map.
|
|
51
|
-
const echoSchema = await space.db.schemaRegistry.query().run();
|
|
52
|
-
const staticSchema = space.db.graph.schemaRegistry.schemas;
|
|
53
|
-
|
|
54
|
-
// Create object map.
|
|
55
|
-
const { objects } = await space.db.query(Filter.everything()).run();
|
|
56
|
-
const objectMap = sortKeys(
|
|
57
|
-
objects.reduce<Record<string, number>>((map, obj) => {
|
|
58
|
-
const type = getTypename(obj);
|
|
59
|
-
if (type) {
|
|
60
|
-
const count = map[type] ?? 0;
|
|
61
|
-
map[type] = count + 1;
|
|
62
|
-
}
|
|
63
|
-
return map;
|
|
64
|
-
}, {}),
|
|
65
|
-
);
|
|
66
|
-
|
|
67
|
-
setInfo({
|
|
68
|
-
schema: {
|
|
69
|
-
static: staticSchema.length,
|
|
70
|
-
mutable: echoSchema.length,
|
|
71
|
-
},
|
|
72
|
-
objects: objectMap,
|
|
73
|
-
});
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
useAsyncEffect(updateInfo, [space]);
|
|
77
|
-
|
|
78
|
-
const handleCreateData = useCallback(
|
|
79
|
-
async (typename: string) => {
|
|
80
|
-
const constructor = typeMap.get(typename);
|
|
81
|
-
if (constructor) {
|
|
82
|
-
// TODO(burdon): Input to specify number of objects.
|
|
83
|
-
await constructor(space, count, onCreateObjects);
|
|
84
|
-
await updateInfo();
|
|
85
|
-
}
|
|
86
|
-
},
|
|
87
|
-
[typeMap, count],
|
|
88
|
-
);
|
|
89
|
-
|
|
90
|
-
return (
|
|
91
|
-
<div role='none' className='flex flex-col grow overflow-hidden'>
|
|
92
|
-
<Toolbar.Root classNames='border-be border-subduedSeparator'>
|
|
93
|
-
<IconButton icon='ph--arrow-clockwise--regular' iconOnly label='Refresh' onClick={updateInfo} />
|
|
94
|
-
<Toolbar.Separator variant='gap' />
|
|
95
|
-
<Input.Root>
|
|
96
|
-
<Input.TextInput
|
|
97
|
-
type='number'
|
|
98
|
-
min={1}
|
|
99
|
-
max={100}
|
|
100
|
-
placeholder={'Count'}
|
|
101
|
-
classNames='!w-[4rem] !text-right'
|
|
102
|
-
size={8}
|
|
103
|
-
value={count}
|
|
104
|
-
onChange={(ev) => setCount(parseInt(ev.target.value))}
|
|
105
|
-
/>
|
|
106
|
-
</Input.Root>
|
|
107
|
-
</Toolbar.Root>
|
|
108
|
-
|
|
109
|
-
<div className='flex flex-col overflow-y-auto divide-y divide-separator'>
|
|
110
|
-
<SchemaTable types={staticTypes} objects={info.objects} label='Static Types' onClick={handleCreateData} />
|
|
111
|
-
<SchemaTable types={recordTypes} objects={info.objects} label='Record Types' onClick={handleCreateData} />
|
|
112
|
-
<SchemaTable types={presets.types} objects={info.objects} label='Presets' onClick={handleCreateData} />
|
|
113
|
-
|
|
114
|
-
<div>
|
|
115
|
-
<SyntaxHighlighter classNames='flex text-xs' language='json'>
|
|
116
|
-
{JSON.stringify({ space, ...info }, jsonKeyReplacer({ truncate: true }), 2)}
|
|
117
|
-
</SyntaxHighlighter>
|
|
118
|
-
</div>
|
|
119
|
-
</div>
|
|
120
|
-
</div>
|
|
121
|
-
);
|
|
122
|
-
};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|