Skip to content

Commit 8c9c1f7

Browse files
committed
installer for deepmemobot
1 parent 8dab014 commit 8c9c1f7

File tree

1 file changed

+75
-16
lines changed

1 file changed

+75
-16
lines changed

Diff for: pages/index.tsx

+75-16
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,13 @@ import {
4141
useVoice
4242
} from '@deep-foundation/deepmemo-imports/imports/voice';
4343
import { useLocalStore } from '@deep-foundation/store/local';
44-
import React, { useEffect, useRef, useState } from 'react';
44+
import React, { useEffect, useMemo, useRef, useState } from 'react';
4545
import { Connection } from '../src/connection';
4646
import { i18nGetStaticProps } from '../src/i18n';
4747
import useAxios from 'axios-hooks';
4848
import { EditorTextArea } from '@deep-foundation/deepcase/imports/editor/editor-textarea';
49-
import times from 'lodash/times';
49+
import sortBy from 'lodash/sortBy';
50+
import reverse from 'lodash/reverse';
5051
import { deepEqual } from 'assert';
5152

5253
const { version } = require('../package.json');
@@ -106,12 +107,17 @@ const InstallerView = React.memo(function InstallerView({}: {}) {
106107
const installer = useInstaller();
107108
const deep = useDeep();
108109
const [apiKey, setApiKey] = useState('');
110+
const [telegramToken, setTelegramToken] = useState('');
109111
const [containerId, setContainerId] = useLocalStore('deepmemo-app-containerId', null);
110112

111113
useEffect(() => {
112114
if (installer?.['ApiKey']?.[0]?.value?.value) setApiKey(installer?.['ApiKey']?.[0]?.value?.value);
113115
}, [installer?.['ApiKey']?.[0]?.value?.value]);
114116

117+
useEffect(() => {
118+
if (installer?.['TelegramToken']?.[0]?.value?.value) setTelegramToken(installer?.['TelegramToken']?.[0]?.value?.value);
119+
}, [installer?.['TelegramToken']?.[0]?.value?.value]);
120+
115121
useEffect(() => {
116122
if (installer?.['space']?.id) setContainerId(installer?.['space']?.id);
117123
}, [installer?.['space']?.id]);
@@ -149,6 +155,10 @@ const InstallerView = React.memo(function InstallerView({}: {}) {
149155
<ListIcon as={installer?.['@deep-foundation/chatgpt-azure-deep']?.length ? CheckCircleIcon : WarningIcon} color={installer?.['@deep-foundation/chatgpt-azure-deep']?.length ? 'green.500' : 'red.500'} />
150156
@deep-foundation/chatgpt-azure-deep
151157
</ListItem>
158+
<ListItem>
159+
<ListIcon as={installer?.['@deep-foundation/voice-to-sync-text-file']?.length ? CheckCircleIcon : WarningIcon} color={installer?.['@deep-foundation/voice-to-sync-text-file']?.length ? 'green.500' : 'red.500'} />
160+
@deep-foundation/voice-to-sync-text-file
161+
</ListItem>
152162
<ListItem>
153163
<ListIcon as={installer?.['@deep-foundation/chatgpt-azure-templates']?.length ? CheckCircleIcon : WarningIcon} color={installer?.['@deep-foundation/chatgpt-azure-templates']?.length ? 'green.500' : 'red.500'} />
154164
@deep-foundation/chatgpt-azure-templates
@@ -188,13 +198,37 @@ const InstallerView = React.memo(function InstallerView({}: {}) {
188198
{installer?.['Model']?.map(l => <option value={String(l.id)}>{l?.value?.value}</option>)}
189199
</Select>
190200
</ListItem>
201+
<ListItem>
202+
<ListIcon as={installer?.['TelegramToken']?.[0]?.value?.value ? CheckCircleIcon : WarningIcon} color={installer?.['TelegramToken']?.[0]?.value?.value ? 'green.500' : 'red.500'} />
203+
TelegramToken ({installer?.['TelegramToken']?.[0]?.value?.value || ''})
204+
<InputGroup size='md'>
205+
<Input placeholder='Enter Telegram Token for Deep.Memory chat bot' value={telegramToken} onChange={(e) => setTelegramToken(e.target.value)} />
206+
<InputRightElement>
207+
<Button size='sm' onClick={async () => {
208+
await installer.saveDeepmemoryTelegramToken(telegramToken);
209+
}}>save</Button>
210+
</InputRightElement>
211+
</InputGroup>
212+
</ListItem>
213+
<ListItem>
214+
<ListIcon as={installer?.['TelegramActive']?.length ? CheckCircleIcon : WarningIcon} color={installer?.['TelegramActive']?.length ? 'green.500' : 'red.500'} />
215+
Telegram bot for Deep.Memory ({installer?.['TelegramActive']?.[0]?.id || ''})
216+
<Button disabled={!!installer?.['TelegramActive']?.length} variant={!!installer?.['TelegramActive']?.length ? 'outline' : 'solid'} colorScheme={'blue'} onClick={() => installer.telegramDeepmemoryBotStatus(true)}>enable</Button>
217+
<Button disabled={!installer?.['TelegramActive']?.length} variant={!installer?.['TelegramActive']?.length ? 'outline' : 'solid'} colorScheme={'blue'} onClick={() => installer.telegramDeepmemoryBotStatus(false)}>disable</Button>
218+
</ListItem>
219+
<ListItem>
220+
<ListIcon as={installer?.['DeepmemoryActive']?.length ? CheckCircleIcon : WarningIcon} color={installer?.['DeepmemoryActive']?.length ? 'green.500' : 'red.500'} />
221+
Deep.Memory ({installer?.['DeepmemoryActive']?.[0]?.id || ''})
222+
<Button disabled={!!installer?.['DeepmemoryActive']?.length} variant={!!installer?.['DeepmemoryActive']?.length ? 'outline' : 'solid'} colorScheme={'blue'} onClick={() => installer.deepmemoryBotStatus(true)}>enable</Button>
223+
<Button disabled={!installer?.['DeepmemoryActive']?.length} variant={!installer?.['DeepmemoryActive']?.length ? 'outline' : 'solid'} colorScheme={'blue'} onClick={() => installer.deepmemoryBotStatus(false)}>disable</Button>
224+
</ListItem>
191225
<ListItem>
192226
<ListIcon as={installer?.['space'] ? CheckCircleIcon : WarningIcon} color={installer?.['space'] ? 'green.500' : 'red.500'} />
193227
space ({installer?.['space']?.id || ''}) <Button disabled={!installer?.space} variant={!!installer?.space ? 'outline' : 'solid'} colorScheme={'blue'} onClick={() => installer.defineSpace()}>define</Button>
194228
</ListItem>
195229
</List>
196230
</Box>
197-
{deep?.linkId && <Graph linkId={deep.linkId}/>}
231+
{false && deep?.linkId && <Graph linkId={deep.linkId} query={{}}/>}
198232
</SimpleGrid>
199233
</CardBody>
200234
</Card>
@@ -247,7 +281,23 @@ const TemplateView = React.memo(function TemplateView({ template }: { template:
247281
},
248282
});
249283

250-
const rejectsAndResolves = deep.useMinilinksSubscription({
284+
const { data: messages } = deep.useDeepSubscription({
285+
type_id: { _id: ['@deep-foundation/messaging', 'Message'] },
286+
up: {
287+
tree_id: { _id: ['@deep-foundation/messaging', 'messagingTree'] },
288+
parent: {
289+
in: {
290+
type_id: { _id: ['@deep-foundation/chatgpt-azure-templates', 'Result'] },
291+
from: {
292+
type_id: { _id: ['@deep-foundation/chatgpt-azure-templates', 'Apply'] },
293+
from_id: template.id
294+
}
295+
}
296+
},
297+
},
298+
});
299+
300+
const resolvesAndRejects = deep.useMinilinksSubscription({
251301
type_id: { _in: [deep.idLocal('@deep-foundation/core', 'Resolved'), deep.idLocal('@deep-foundation/core', 'Rejected')] },
252302
from: {
253303
type_id: deep.idLocal('@deep-foundation/core', 'Promise'),
@@ -257,9 +307,14 @@ const TemplateView = React.memo(function TemplateView({ template }: { template:
257307
from_id: template.id,
258308
}
259309
},
260-
}
310+
},
261311
});
262312

313+
const results = useMemo(
314+
() => reverse(sortBy([...resolvesAndRejects, ...messages], ['id'])),
315+
[resolvesAndRejects, messages],
316+
);
317+
263318
return <Box borderBottom={'1px'} borderColor={'gray.300'}>
264319
<SimpleGrid columns={{sm: 1, md: 2}}>
265320
<Box>
@@ -280,7 +335,7 @@ const TemplateView = React.memo(function TemplateView({ template }: { template:
280335
</Box>
281336
<HStack p={2} pt={0} spacing={2}>
282337
<Button
283-
colorScheme={savedValue === value || saving ? 'grey' : 'blue'} disabled={savedValue === value || saving} variant={'solid'} size="sm"
338+
colorScheme={savedValue === value || saving ? 'gray' : 'blue'} disabled={savedValue === value || saving} variant={'solid'} size="sm"
284339
onClick={() => save(value)}
285340
>
286341
{saving ? <SpinnerIcon/> : savedValue === value ? <CheckIcon/> : <TriangleDownIcon/>}
@@ -306,13 +361,20 @@ const TemplateView = React.memo(function TemplateView({ template }: { template:
306361
>x</Button>
307362
</HStack>
308363
</Box>
309-
<Box p={2} h={'11em'} overflowY={'scroll'}>
310-
{rejectsAndResolves.map(n => <Box
364+
<Box p={2} h={'11em'} overflowY={'scroll'} overflowX={'hidden'}>
365+
{results.map(n => <Box
311366
borderBottom={'1px'} borderColor={'gray.300'} p={2}
312-
color={n.type_id === deep.idLocal('@deep-foundation/core', 'Rejected') ? 'red.500' : 'green.500'}
367+
color={
368+
n.type_id === deep.idLocal('@deep-foundation/core', 'Rejected') ? 'red.500' :
369+
n.type_id === deep.idLocal('@deep-foundation/core', 'Resolved') ? 'green.500' :
370+
'black'
371+
}
313372
>
314-
{n.type_id === deep.idLocal('@deep-foundation/core', 'Rejected') && <pre><code>{JSON.stringify(n?.to?.value?.value, null, 2)}</code></pre>}
315-
{n.type_id === deep.idLocal('@deep-foundation/core', 'Resolved') && <pre><code>{n?.id}</code></pre>}
373+
<Text fontSize='xs' as='pre' sx={{ textWrap: 'wrap' }}>{n.type_id === deep.idLocal('@deep-foundation/core', 'Rejected') ? (
374+
<code>{JSON.stringify(n?.to?.value?.value, null, 2)}</code>
375+
) : n.type_id === deep.idLocal('@deep-foundation/core', 'Resolved') ? (
376+
<code>{n?.id}</code>
377+
) : n?.value?.value}</Text>
316378
</Box>)}
317379
</Box>
318380
</SimpleGrid>
@@ -322,18 +384,15 @@ const TemplateView = React.memo(function TemplateView({ template }: { template:
322384
const TemplatesViewCore = React.memo(function TemplatesView({ }: { }) {
323385
const deep = useDeep();
324386
const device = useDevice();
325-
deep.useDeepSubscription({
387+
const { data: templates } = deep.useDeepSubscription({
326388
type_id: { _id: ['@deep-foundation/chatgpt-azure-templates', 'Template'] },
327389
in: {
328390
type_id: deep.idLocal('@deep-foundation/core', 'Contain'), from_id: deep?.linkId,
329391
}
330392
});
331-
const templates = deep.useMinilinksSubscription({
332-
type_id: { _id: ['@deep-foundation/chatgpt-azure-templates', 'Template'] },
333-
});
334393
return <>
335394
<Box borderTop={'1px'} borderColor={'gray.300'}>
336-
{templates.map(t => (<TemplateView template={t}/>))}
395+
{templates.map(t => (<TemplateView key={t.id} template={t}/>))}
337396
</Box>
338397
</>;
339398
});

0 commit comments

Comments
 (0)