diff --git a/src/components/FileEventEditor/FileEventEditor.tsx b/src/components/FileEventEditor/FileEventEditor.tsx index caa6e91..b284d9d 100644 --- a/src/components/FileEventEditor/FileEventEditor.tsx +++ b/src/components/FileEventEditor/FileEventEditor.tsx @@ -37,11 +37,13 @@ const ensureDecrypted = async (dvm: NDKUser, event: NDKEvent) => { return event; }; +const NPUB_DVM_THUMBNAIL_CREATION = 'npub1q8cv87l47fql2xer2uyw509y5n5s9f53h76hvf9377efdptmsvusxf3n8s'; + const FileEventEditor = ({ data }: { data: FileEventData }) => { const [fileEventData, setFileEventData] = useState(data); const [thumbnailRequestEventId, setThumbnailRequestEventId] = useState(); const { ndk, user } = useNDK(); - const dvm = ndk.getUser({ npub: 'npub1q8cv87l47fql2xer2uyw509y5n5s9f53h76hvf9377efdptmsvusxf3n8s' }); + const dvm = ndk.getUser({ npub: NPUB_DVM_THUMBNAIL_CREATION }); const thumbnailDvmFilter = useMemo( () => ({ kinds: [6204 as NDKKind], '#e': [thumbnailRequestEventId || ''] }), diff --git a/src/components/Layout/Layout.css b/src/components/Layout/Layout.css index b2c1318..9d76bfe 100644 --- a/src/components/Layout/Layout.css +++ b/src/components/Layout/Layout.css @@ -6,38 +6,11 @@ @apply flex flex-col self-center md:w-10/12 w-full min-h-[80vh] px-4 md:px-0; } -.title { - @apply text-neutral-content text-4xl flex flex-row items-center gap-2 p-4 md:w-10/12 w-full self-center; -} - -.title img { - @apply w-10; -} - -.title a.action { - @apply flex flex-col text-sm items-center opacity-50 hover:opacity-100 cursor-pointer px-2; -} - -.title a.logo { - @apply flex flex-row flex-grow items-center gap-2 cursor-pointer; -} - -.title span { - @apply flex-grow; -} - -.title svg { - @apply w-7; -} - -.avatar { - @apply flex-shrink; -} - -.avatar img { - @apply w-10 h-10 rounded-full; -} .footer { @apply justify-center gap-1 text-base-content pt-12 pb-6; } + +.btn svg { + @apply w-8; +} diff --git a/src/components/Layout/Layout.tsx b/src/components/Layout/Layout.tsx index 843050f..3b425bf 100644 --- a/src/components/Layout/Layout.tsx +++ b/src/components/Layout/Layout.tsx @@ -1,7 +1,7 @@ import { Outlet, useNavigate } from 'react-router-dom'; import { useNDK } from '../../utils/ndk'; import './Layout.css'; -import { ArrowUpOnSquareIcon } from '@heroicons/react/24/outline'; +import { ArrowUpOnSquareIcon, MagnifyingGlassIcon, ServerStackIcon } from '@heroicons/react/24/outline'; import { useEffect } from 'react'; import ThemeSwitcher from '../ThemeSwitcher'; @@ -15,22 +15,36 @@ export const Layout = () => { return (
-
- navigate('/')}> - bouquet - -
+
+
+ +
+
+ + + +
+
-
- +
+
+ +
-
- -
+
{}
made with 💜 by{' '} diff --git a/src/components/ThemeSwitcher.tsx b/src/components/ThemeSwitcher.tsx index 264c445..d19d74d 100644 --- a/src/components/ThemeSwitcher.tsx +++ b/src/components/ThemeSwitcher.tsx @@ -14,8 +14,8 @@ const ThemeSwitcher = () => {
); diff --git a/src/main.tsx b/src/main.tsx index 850be8c..a766f6b 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -41,6 +41,7 @@ const router = createBrowserRouter( }> } /> } /> + } /> } /> } /> diff --git a/src/pages/Transfer.tsx b/src/pages/Transfer.tsx index 8ab9440..6b90512 100644 --- a/src/pages/Transfer.tsx +++ b/src/pages/Transfer.tsx @@ -27,7 +27,8 @@ type TransferStatus = { }; export const Transfer = () => { - const { source: transferSource } = useParams(); + const { source } = useParams(); + const [transferSource, setTransferSource] = useState(source); const navigate = useNavigate(); const { serverInfo } = useServerInfo(); const [transferTarget, setTransferTarget] = useState(); @@ -100,88 +101,96 @@ export const Transfer = () => { return { ...stats, fullSize: transferJobs?.reduce((acc, b) => acc + b.size, 0) || 0 }; }, [transferLog, transferJobs]); - return ( - transferSource && ( - <> - s.name == transferSource)} - onCancel={() => closeTransferMode()} - title={ - <> - Transfer Source - - } - > - s.name != transferSource) - .sort()} - selectedServer={transferTarget} - setSelectedServer={setTransferTarget} - title={ - <> - Transfer Target - - } - > - {transferTarget && transferJobs && transferJobs.length > 0 ? ( + return transferSource ? ( + <> + s.name == transferSource)} + onCancel={() => closeTransferMode()} + title={ <> -
-
- {transferJobs.length} object{transferJobs.length > 1 ? 's' : ''} to transfer{' '} - {!started && ( - - )} -
-
- - {
} -
- {Object.values(transferLog) - .filter(b => b.status == 'error') - .map(t => ( -
- - - - {t.sha256} - {formatFileSize(t.size)} - {t.status && (t.status == 'error' ? : '')} - {t.message} -
- ))} -
+ Transfer Source + + } + > + s.name != transferSource) + .sort()} + selectedServer={transferTarget} + setSelectedServer={setTransferTarget} + title={ + <> + Transfer Target + + } + > + {transferTarget && transferJobs && transferJobs.length > 0 ? ( + <> +
+
+ {transferJobs.length} object{transferJobs.length > 1 ? 's' : ''} to transfer{' '} + {!started && ( + + )} +
+
+ + {
} +
+ {Object.values(transferLog) + .filter(b => b.status == 'error') + .map(t => ( +
+ + + + {t.sha256} + {formatFileSize(t.size)} + {t.status && (t.status == 'error' ? : '')} + {t.message} +
+ ))}
- {!started && } - - ) : ( -
- {transferTarget ? ( - <> - no missing objects to transfer - - ) : ( - <>choose a transfer target above - )}
- )} - - ) + {!started && } + + ) : ( +
+ {transferTarget ? ( + <> + no missing objects to transfer + + ) : ( + <>choose a transfer target above + )} +
+ )} + + ) : ( + <> + + Transfer Source + + } + servers={Object.values(serverInfo).sort()} + selectedServer={transferSource} + setSelectedServer={s => setTransferSource(s)} + > + ); };