From 1107d506c19bb3f127864a2a4e8b702dc8552e47 Mon Sep 17 00:00:00 2001 From: JohnDoe6345789 Date: Fri, 26 Dec 2025 01:11:33 +0000 Subject: [PATCH] code: nextjs,frontends,tsx (2 files) --- .../components/level5/PowerTransferTab.tsx | 88 ------------------- .../package-glue/load-package-index.ts | 30 +++++++ 2 files changed, 30 insertions(+), 88 deletions(-) delete mode 100644 frontends/nextjs/src/components/level5/PowerTransferTab.tsx create mode 100644 frontends/nextjs/src/lib/packages/package-glue/load-package-index.ts diff --git a/frontends/nextjs/src/components/level5/PowerTransferTab.tsx b/frontends/nextjs/src/components/level5/PowerTransferTab.tsx deleted file mode 100644 index 227e6b339..000000000 --- a/frontends/nextjs/src/components/level5/PowerTransferTab.tsx +++ /dev/null @@ -1,88 +0,0 @@ -import { useState } from 'react' -import { Button } from '@/components/ui' -import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui' -import { ScrollArea } from '@/components/ui' -import { Badge } from '@/components/ui' -import { Separator } from '@/components/ui' -import { Alert, AlertDescription } from '@/components/ui' -import { Crown, ArrowsLeftRight } from '@phosphor-icons/react' -import type { User } from '@/lib/level-types' - -interface PowerTransferTabProps { - currentUser: User - allUsers: User[] - onInitiateTransfer: (userId: string) => void -} - -export function PowerTransferTab({ currentUser, allUsers, onInitiateTransfer }: PowerTransferTabProps) { - const [selectedUserId, setSelectedUserId] = useState('') - - return ( - - - Transfer Super God Power - - Transfer your Super God privileges to another user. You will be downgraded to God. - - - -
-
- -
-

Critical Action

-

- This action cannot be undone. Only one Super God can exist at a time. After transfer, you will have God-level access only. -

-
-
-
- - - -
-

Select User to Transfer Power To:

- -
- {allUsers - .filter(u => u.id !== currentUser.id && u.role !== 'supergod') - .map(u => ( - setSelectedUserId(u.id)} - > - -
-
-

{u.username}

-

{u.email}

-
- - {u.role} - -
-
-
- ))} -
-
-
- - -
-
- ) -} diff --git a/frontends/nextjs/src/lib/packages/package-glue/load-package-index.ts b/frontends/nextjs/src/lib/packages/package-glue/load-package-index.ts new file mode 100644 index 000000000..e3bbb2723 --- /dev/null +++ b/frontends/nextjs/src/lib/packages/package-glue/load-package-index.ts @@ -0,0 +1,30 @@ +export interface PackageIndexEntry { + packageId: string + name: string + version: string + description?: string + author?: string + category?: string + dependencies?: string[] + exports?: { components?: unknown[] } +} + +interface PackageIndexResponse { + packages?: PackageIndexEntry[] +} + +export async function loadPackageIndex(): Promise { + try { + const response = await fetch('/packages/index.json', { cache: 'no-store' }) + if (!response.ok) return null + + const data = (await response.json()) as PackageIndexResponse + if (!data?.packages || !Array.isArray(data.packages)) { + return null + } + + return data.packages + } catch (error) { + return null + } +}