mirror of
https://github.com/luminous-devs/lume.git
synced 2024-10-02 18:00:47 +00:00
feat(depot): add setting run depot at launch
This commit is contained in:
parent
ba88a4e0f2
commit
344bdc0c66
@ -34,7 +34,6 @@
|
|||||||
"@radix-ui/react-toolbar": "^1.0.4",
|
"@radix-ui/react-toolbar": "^1.0.4",
|
||||||
"@radix-ui/react-tooltip": "^1.0.7",
|
"@radix-ui/react-tooltip": "^1.0.7",
|
||||||
"@tanstack/react-query": "^5.14.0",
|
"@tanstack/react-query": "^5.14.0",
|
||||||
"@tanstack/react-query-devtools": "^5.14.0",
|
|
||||||
"@tauri-apps/api": "2.0.0-alpha.11",
|
"@tauri-apps/api": "2.0.0-alpha.11",
|
||||||
"@tauri-apps/cli": "2.0.0-alpha.17",
|
"@tauri-apps/cli": "2.0.0-alpha.17",
|
||||||
"@tauri-apps/plugin-autostart": "2.0.0-alpha.3",
|
"@tauri-apps/plugin-autostart": "2.0.0-alpha.3",
|
||||||
@ -117,7 +116,6 @@
|
|||||||
"tailwindcss": "^3.3.6",
|
"tailwindcss": "^3.3.6",
|
||||||
"typescript": "^5.3.3",
|
"typescript": "^5.3.3",
|
||||||
"vite": "^5.0.10",
|
"vite": "^5.0.10",
|
||||||
"vite-plugin-top-level-await": "^1.4.1",
|
|
||||||
"vite-tsconfig-paths": "^4.2.2"
|
"vite-tsconfig-paths": "^4.2.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -53,9 +53,6 @@ dependencies:
|
|||||||
'@tanstack/react-query':
|
'@tanstack/react-query':
|
||||||
specifier: ^5.14.0
|
specifier: ^5.14.0
|
||||||
version: 5.14.0(react@18.2.0)
|
version: 5.14.0(react@18.2.0)
|
||||||
'@tanstack/react-query-devtools':
|
|
||||||
specifier: ^5.14.0
|
|
||||||
version: 5.14.0(@tanstack/react-query@5.14.0)(react@18.2.0)
|
|
||||||
'@tauri-apps/api':
|
'@tauri-apps/api':
|
||||||
specifier: 2.0.0-alpha.11
|
specifier: 2.0.0-alpha.11
|
||||||
version: 2.0.0-alpha.11
|
version: 2.0.0-alpha.11
|
||||||
@ -298,9 +295,6 @@ devDependencies:
|
|||||||
vite:
|
vite:
|
||||||
specifier: ^5.0.10
|
specifier: ^5.0.10
|
||||||
version: 5.0.10(@types/node@20.10.4)
|
version: 5.0.10(@types/node@20.10.4)
|
||||||
vite-plugin-top-level-await:
|
|
||||||
specifier: ^1.4.1
|
|
||||||
version: 1.4.1(vite@5.0.10)
|
|
||||||
vite-tsconfig-paths:
|
vite-tsconfig-paths:
|
||||||
specifier: ^4.2.2
|
specifier: ^4.2.2
|
||||||
version: 4.2.2(typescript@5.3.3)(vite@5.0.10)
|
version: 4.2.2(typescript@5.3.3)(vite@5.0.10)
|
||||||
@ -800,6 +794,12 @@ packages:
|
|||||||
'@noble/hashes': 1.3.1
|
'@noble/hashes': 1.3.1
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/@noble/curves@1.3.0:
|
||||||
|
resolution: {integrity: sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==}
|
||||||
|
dependencies:
|
||||||
|
'@noble/hashes': 1.3.3
|
||||||
|
dev: false
|
||||||
|
|
||||||
/@noble/hashes@1.3.1:
|
/@noble/hashes@1.3.1:
|
||||||
resolution: {integrity: sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA==}
|
resolution: {integrity: sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA==}
|
||||||
engines: {node: '>= 16'}
|
engines: {node: '>= 16'}
|
||||||
@ -868,7 +868,7 @@ packages:
|
|||||||
/@nostr-fetch/kernel@0.14.0:
|
/@nostr-fetch/kernel@0.14.0:
|
||||||
resolution: {integrity: sha512-gJWlOXYBkb3SqTP8WTm7E8dwGA7g+TaYtZntjMf3L2wzivS2OjVLSURyuidSyzdpK8kPpyiL2O3RuotssncO1g==}
|
resolution: {integrity: sha512-gJWlOXYBkb3SqTP8WTm7E8dwGA7g+TaYtZntjMf3L2wzivS2OjVLSURyuidSyzdpK8kPpyiL2O3RuotssncO1g==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@noble/curves': 1.1.0
|
'@noble/curves': 1.3.0
|
||||||
'@noble/hashes': 1.3.3
|
'@noble/hashes': 1.3.3
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
@ -1773,16 +1773,6 @@ packages:
|
|||||||
engines: {node: '>=14.0.0'}
|
engines: {node: '>=14.0.0'}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@rollup/plugin-virtual@3.0.2:
|
|
||||||
resolution: {integrity: sha512-10monEYsBp3scM4/ND4LNH5Rxvh3e/cVeL3jWTgZ2SrQ+BmUoQcopVQvnaMcOnykb1VkxUFuDAN+0FnpTFRy2A==}
|
|
||||||
engines: {node: '>=14.0.0'}
|
|
||||||
peerDependencies:
|
|
||||||
rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
|
|
||||||
peerDependenciesMeta:
|
|
||||||
rollup:
|
|
||||||
optional: true
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@rollup/rollup-android-arm-eabi@4.9.0:
|
/@rollup/rollup-android-arm-eabi@4.9.0:
|
||||||
resolution: {integrity: sha512-+1ge/xmaJpm1KVBuIH38Z94zj9fBD+hp+/5WLaHgyY8XLq1ibxk/zj6dTXaqM2cAbYKq8jYlhHd6k05If1W5xA==}
|
resolution: {integrity: sha512-+1ge/xmaJpm1KVBuIH38Z94zj9fBD+hp+/5WLaHgyY8XLq1ibxk/zj6dTXaqM2cAbYKq8jYlhHd6k05If1W5xA==}
|
||||||
cpu: [arm]
|
cpu: [arm]
|
||||||
@ -2055,21 +2045,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-OEri9fVDYT8XEqgh/dc6fFp1niyqu+MDY+Vp/LwU+scdk9xQLZ7KdUMEUh/sqTEjRM5BlFzAhAv+EIYcvSxt0Q==}
|
resolution: {integrity: sha512-OEri9fVDYT8XEqgh/dc6fFp1niyqu+MDY+Vp/LwU+scdk9xQLZ7KdUMEUh/sqTEjRM5BlFzAhAv+EIYcvSxt0Q==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@tanstack/query-devtools@5.13.5:
|
|
||||||
resolution: {integrity: sha512-effSYz9AWcZ6sNd+c8LCBYFIuDZApoCTXEpRlEYChBZpMz9QUUVMLToThwCyUY49+T5pANL3XxgZf3HV7hwJlg==}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@tanstack/react-query-devtools@5.14.0(@tanstack/react-query@5.14.0)(react@18.2.0):
|
|
||||||
resolution: {integrity: sha512-A/I/jYeyyNduI3+Kb84emkvqw5YOt7+MpO1ZpfYFyfHzCd5dQ7nWuCZzI67gS/JARwqRfGkuuuJkTfuKnipEzA==}
|
|
||||||
peerDependencies:
|
|
||||||
'@tanstack/react-query': ^5.14.0
|
|
||||||
react: ^18.0.0
|
|
||||||
dependencies:
|
|
||||||
'@tanstack/query-devtools': 5.13.5
|
|
||||||
'@tanstack/react-query': 5.14.0(react@18.2.0)
|
|
||||||
react: 18.2.0
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@tanstack/react-query@5.14.0(react@18.2.0):
|
/@tanstack/react-query@5.14.0(react@18.2.0):
|
||||||
resolution: {integrity: sha512-+qCooNZr7aGr6a0UEblfEgDSO1y+H7h7JnT4nUlbyfgCGE695lmBiqTciuW1C1Jr6J6Z2bwyd6YmBDKFKszWhA==}
|
resolution: {integrity: sha512-+qCooNZr7aGr6a0UEblfEgDSO1y+H7h7JnT4nUlbyfgCGE695lmBiqTciuW1C1Jr6J6Z2bwyd6YmBDKFKszWhA==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@ -6023,11 +5998,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
|
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/uuid@9.0.1:
|
|
||||||
resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
|
|
||||||
hasBin: true
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/virtua@0.17.5(react-dom@18.2.0)(react@18.2.0):
|
/virtua@0.17.5(react-dom@18.2.0)(react@18.2.0):
|
||||||
resolution: {integrity: sha512-xTlxQ2/mDNSpU1tsdmpZT3kgoxSnjodTfs+OUeahkTSlBEWXnBujXKWXdl+hIRKOF1Igq8/gKPYltGSQV9p2eA==}
|
resolution: {integrity: sha512-xTlxQ2/mDNSpU1tsdmpZT3kgoxSnjodTfs+OUeahkTSlBEWXnBujXKWXdl+hIRKOF1Igq8/gKPYltGSQV9p2eA==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@ -6038,20 +6008,6 @@ packages:
|
|||||||
react-dom: 18.2.0(react@18.2.0)
|
react-dom: 18.2.0(react@18.2.0)
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/vite-plugin-top-level-await@1.4.1(vite@5.0.10):
|
|
||||||
resolution: {integrity: sha512-hogbZ6yT7+AqBaV6lK9JRNvJDn4/IJvHLu6ET06arNfo0t2IsyCaon7el9Xa8OumH+ESuq//SDf8xscZFE0rWw==}
|
|
||||||
peerDependencies:
|
|
||||||
vite: '>=2.8'
|
|
||||||
dependencies:
|
|
||||||
'@rollup/plugin-virtual': 3.0.2
|
|
||||||
'@swc/core': 1.3.100
|
|
||||||
uuid: 9.0.1
|
|
||||||
vite: 5.0.10(@types/node@20.10.4)
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- '@swc/helpers'
|
|
||||||
- rollup
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/vite-tsconfig-paths@4.2.2(typescript@5.3.3)(vite@5.0.10):
|
/vite-tsconfig-paths@4.2.2(typescript@5.3.3)(vite@5.0.10):
|
||||||
resolution: {integrity: sha512-dq0FjyxHHDnp0uS3P12WEOX2W7NeuLzX9AWP38D7Zw2CTbFErapwQVlCiT5DMJcVWKQ1MMdTe92PZl/rBQ7qcw==}
|
resolution: {integrity: sha512-dq0FjyxHHDnp0uS3P12WEOX2W7NeuLzX9AWP38D7Zw2CTbFErapwQVlCiT5DMJcVWKQ1MMdTe92PZl/rBQ7qcw==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
|
@ -15,7 +15,8 @@ export function DepotScreen() {
|
|||||||
setLoading(true);
|
setLoading(true);
|
||||||
|
|
||||||
await ark.launchDepot();
|
await ark.launchDepot();
|
||||||
await delay(5000); // delay 5s to make sure depot is running
|
await ark.createSetting('depot', '1');
|
||||||
|
await delay(2000); // delay 2s to make sure depot is running
|
||||||
|
|
||||||
// default depot url: ws://localhost:6090
|
// default depot url: ws://localhost:6090
|
||||||
// #TODO: user can custom depot url
|
// #TODO: user can custom depot url
|
||||||
|
@ -51,6 +51,7 @@ export class Ark {
|
|||||||
outbox: boolean;
|
outbox: boolean;
|
||||||
media: boolean;
|
media: boolean;
|
||||||
hashtag: boolean;
|
hashtag: boolean;
|
||||||
|
depot: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
constructor({ storage, platform }: { storage: Database; platform: Platform }) {
|
constructor({ storage, platform }: { storage: Database; platform: Platform }) {
|
||||||
@ -62,6 +63,7 @@ export class Ark {
|
|||||||
outbox: false,
|
outbox: false,
|
||||||
media: true,
|
media: true,
|
||||||
hashtag: true,
|
hashtag: true,
|
||||||
|
depot: false,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -162,6 +164,7 @@ export class Ark {
|
|||||||
if (item.key === 'media') this.settings.media = !!parseInt(item.value);
|
if (item.key === 'media') this.settings.media = !!parseInt(item.value);
|
||||||
if (item.key === 'hashtag') this.settings.hashtag = !!parseInt(item.value);
|
if (item.key === 'hashtag') this.settings.hashtag = !!parseInt(item.value);
|
||||||
if (item.key === 'autoupdate') this.settings.autoupdate = !!parseInt(item.value);
|
if (item.key === 'autoupdate') this.settings.autoupdate = !!parseInt(item.value);
|
||||||
|
if (item.key === 'depot') this.settings.depot = !!parseInt(item.value);
|
||||||
}
|
}
|
||||||
|
|
||||||
const explicitRelayUrls = normalizeRelayUrlSet([
|
const explicitRelayUrls = normalizeRelayUrlSet([
|
||||||
|
@ -8,6 +8,7 @@ import { PropsWithChildren, createContext, useContext, useEffect, useState } fro
|
|||||||
import { Ark } from '@libs/ark';
|
import { Ark } from '@libs/ark';
|
||||||
import { LoaderIcon } from '@shared/icons';
|
import { LoaderIcon } from '@shared/icons';
|
||||||
import { QUOTES } from '@utils/constants';
|
import { QUOTES } from '@utils/constants';
|
||||||
|
import { delay } from '@utils/delay';
|
||||||
|
|
||||||
const ArkContext = createContext<Ark>(undefined);
|
const ArkContext = createContext<Ark>(undefined);
|
||||||
|
|
||||||
@ -23,8 +24,8 @@ const ArkProvider = ({ children }: PropsWithChildren<object>) => {
|
|||||||
const _ark = new Ark({ storage: sqlite, platform: platformName });
|
const _ark = new Ark({ storage: sqlite, platform: platformName });
|
||||||
await _ark.init();
|
await _ark.init();
|
||||||
|
|
||||||
if (_ark.settings.autoupdate) {
|
|
||||||
// check update
|
// check update
|
||||||
|
if (_ark.settings.autoupdate) {
|
||||||
const update = await check();
|
const update = await check();
|
||||||
// install new version
|
// install new version
|
||||||
if (update) {
|
if (update) {
|
||||||
@ -35,6 +36,12 @@ const ArkProvider = ({ children }: PropsWithChildren<object>) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// start depot
|
||||||
|
if (_ark.settings.depot) {
|
||||||
|
await ark.launchDepot();
|
||||||
|
await delay(2000);
|
||||||
|
}
|
||||||
|
|
||||||
setArk(_ark);
|
setArk(_ark);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(e);
|
console.error(e);
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
||||||
import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
|
|
||||||
import { createRoot } from 'react-dom/client';
|
import { createRoot } from 'react-dom/client';
|
||||||
import { Toaster } from 'sonner';
|
import { Toaster } from 'sonner';
|
||||||
import { ArkProvider } from '@libs/ark/provider';
|
import { ArkProvider } from '@libs/ark/provider';
|
||||||
@ -19,7 +18,6 @@ const root = createRoot(container);
|
|||||||
|
|
||||||
root.render(
|
root.render(
|
||||||
<QueryClientProvider client={queryClient}>
|
<QueryClientProvider client={queryClient}>
|
||||||
<ReactQueryDevtools initialIsOpen={false} buttonPosition="top-right" />
|
|
||||||
<Toaster position="top-center" theme="system" closeButton />
|
<Toaster position="top-center" theme="system" closeButton />
|
||||||
<ArkProvider>
|
<ArkProvider>
|
||||||
<App />
|
<App />
|
||||||
|
@ -7,6 +7,7 @@ export * from './file';
|
|||||||
export * from './hashtag';
|
export * from './hashtag';
|
||||||
export * from './thread';
|
export * from './thread';
|
||||||
export * from './group';
|
export * from './group';
|
||||||
|
export * from './titleBar';
|
||||||
export * from './nostrBand/trendingAccounts';
|
export * from './nostrBand/trendingAccounts';
|
||||||
export * from './nostrBand/trendingNotes';
|
export * from './nostrBand/trendingNotes';
|
||||||
export * from './other/wrapper';
|
export * from './other/wrapper';
|
||||||
@ -16,5 +17,4 @@ export * from './other/widgetList';
|
|||||||
export * from './other/addGroupFeeds';
|
export * from './other/addGroupFeeds';
|
||||||
export * from './other/addHashtagFeeds';
|
export * from './other/addHashtagFeeds';
|
||||||
export * from './other/userProfile';
|
export * from './other/userProfile';
|
||||||
export * from './titleBar';
|
|
||||||
export * from './other/nostrBandUserProfile';
|
export * from './other/nostrBandUserProfile';
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { NDKEvent, NDKKind } from '@nostr-dev-kit/ndk';
|
import { NDKEvent, NDKKind } from '@nostr-dev-kit/ndk';
|
||||||
import { useInfiniteQuery } from '@tanstack/react-query';
|
import { useInfiniteQuery } from '@tanstack/react-query';
|
||||||
import { useCallback, useMemo, useRef } from 'react';
|
import { useMemo, useRef } from 'react';
|
||||||
import { VList, VListHandle } from 'virtua';
|
import { VList, VListHandle } from 'virtua';
|
||||||
import { useArk } from '@libs/ark';
|
import { useArk } from '@libs/ark';
|
||||||
import { ArrowRightCircleIcon, LoaderIcon } from '@shared/icons';
|
import { ArrowRightCircleIcon, LoaderIcon } from '@shared/icons';
|
||||||
@ -15,6 +15,8 @@ import { FETCH_LIMIT } from '@utils/constants';
|
|||||||
|
|
||||||
export function NewsfeedWidget() {
|
export function NewsfeedWidget() {
|
||||||
const ark = useArk();
|
const ark = useArk();
|
||||||
|
const ref = useRef<VListHandle>();
|
||||||
|
|
||||||
const { status, data, hasNextPage, isFetchingNextPage, fetchNextPage } =
|
const { status, data, hasNextPage, isFetchingNextPage, fetchNextPage } =
|
||||||
useInfiniteQuery({
|
useInfiniteQuery({
|
||||||
queryKey: ['newsfeed'],
|
queryKey: ['newsfeed'],
|
||||||
@ -48,14 +50,12 @@ export function NewsfeedWidget() {
|
|||||||
refetchOnWindowFocus: false,
|
refetchOnWindowFocus: false,
|
||||||
});
|
});
|
||||||
|
|
||||||
const ref = useRef<VListHandle>();
|
|
||||||
const allEvents = useMemo(
|
const allEvents = useMemo(
|
||||||
() => (data ? data.pages.flatMap((page) => page) : []),
|
() => (data ? data.pages.flatMap((page) => page) : []),
|
||||||
[data]
|
[data]
|
||||||
);
|
);
|
||||||
|
|
||||||
const renderItem = useCallback(
|
const renderItem = (event: NDKEvent) => {
|
||||||
(event: NDKEvent) => {
|
|
||||||
switch (event.kind) {
|
switch (event.kind) {
|
||||||
case NDKKind.Text:
|
case NDKKind.Text:
|
||||||
return <MemoizedTextNote key={event.id} event={event} />;
|
return <MemoizedTextNote key={event.id} event={event} />;
|
||||||
@ -64,15 +64,13 @@ export function NewsfeedWidget() {
|
|||||||
default:
|
default:
|
||||||
return <UnknownNote key={event.id} event={event} />;
|
return <UnknownNote key={event.id} event={event} />;
|
||||||
}
|
}
|
||||||
},
|
};
|
||||||
[data]
|
|
||||||
);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<WidgetWrapper>
|
<WidgetWrapper>
|
||||||
<TitleBar id="9999" isLive />
|
<TitleBar id="9999" isLive />
|
||||||
<LiveUpdater status={status} />
|
<LiveUpdater status={status} />
|
||||||
<VList className="flex-1" ref={ref} overscan={2}>
|
<VList ref={ref} overscan={2} className="flex-1">
|
||||||
{status === 'pending' ? (
|
{status === 'pending' ? (
|
||||||
<div className="px-3 py-1.5">
|
<div className="px-3 py-1.5">
|
||||||
<div className="rounded-xl bg-neutral-100 px-3 py-3 dark:bg-neutral-900">
|
<div className="rounded-xl bg-neutral-100 px-3 py-3 dark:bg-neutral-900">
|
||||||
@ -91,7 +89,7 @@ export function NewsfeedWidget() {
|
|||||||
className="inline-flex h-10 w-max items-center justify-center gap-2 rounded-full bg-blue-500 px-6 font-medium text-white hover:bg-blue-600 focus:outline-none"
|
className="inline-flex h-10 w-max items-center justify-center gap-2 rounded-full bg-blue-500 px-6 font-medium text-white hover:bg-blue-600 focus:outline-none"
|
||||||
>
|
>
|
||||||
{isFetchingNextPage ? (
|
{isFetchingNextPage ? (
|
||||||
<LoaderIcon className="h-4 w-4 animate-spin" />
|
<LoaderIcon className="h-5 w-5 animate-spin" />
|
||||||
) : (
|
) : (
|
||||||
<>
|
<>
|
||||||
<ArrowRightCircleIcon className="h-5 w-5" />
|
<ArrowRightCircleIcon className="h-5 w-5" />
|
||||||
|
@ -6,9 +6,10 @@ import { ChevronUpIcon } from '@shared/icons';
|
|||||||
|
|
||||||
export function LiveUpdater({ status }: { status: QueryStatus }) {
|
export function LiveUpdater({ status }: { status: QueryStatus }) {
|
||||||
const ark = useArk();
|
const ark = useArk();
|
||||||
const [events, setEvents] = useState<NDKEvent[]>([]);
|
|
||||||
const queryClient = useQueryClient();
|
const queryClient = useQueryClient();
|
||||||
|
|
||||||
|
const [events, setEvents] = useState<NDKEvent[]>([]);
|
||||||
|
|
||||||
const update = async () => {
|
const update = async () => {
|
||||||
await queryClient.setQueryData(
|
await queryClient.setQueryData(
|
||||||
['newsfeed'],
|
['newsfeed'],
|
||||||
|
@ -1,17 +1,9 @@
|
|||||||
import react from '@vitejs/plugin-react-swc';
|
import react from '@vitejs/plugin-react-swc';
|
||||||
import { defineConfig } from 'vite';
|
import { defineConfig } from 'vite';
|
||||||
import topLevelAwait from 'vite-plugin-top-level-await';
|
|
||||||
import viteTsconfigPaths from 'vite-tsconfig-paths';
|
import viteTsconfigPaths from 'vite-tsconfig-paths';
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
plugins: [
|
plugins: [react(), viteTsconfigPaths()],
|
||||||
react(),
|
|
||||||
viteTsconfigPaths(),
|
|
||||||
topLevelAwait({
|
|
||||||
promiseExportName: '__tla',
|
|
||||||
promiseImportName: (i) => `__tla_${i}`,
|
|
||||||
}),
|
|
||||||
],
|
|
||||||
envPrefix: ['VITE_', 'TAURI_'],
|
envPrefix: ['VITE_', 'TAURI_'],
|
||||||
build: {
|
build: {
|
||||||
target: process.env.TAURI_PLATFORM === 'windows' ? 'chrome105' : 'safari13',
|
target: process.env.TAURI_PLATFORM === 'windows' ? 'chrome105' : 'safari13',
|
||||||
|
Loading…
Reference in New Issue
Block a user