diff --git a/moon/apps/web/components/Setting/PersonalToken.tsx b/moon/apps/web/components/Setting/PersonalToken.tsx index 3f4800261..d8b1eb341 100644 --- a/moon/apps/web/components/Setting/PersonalToken.tsx +++ b/moon/apps/web/components/Setting/PersonalToken.tsx @@ -5,23 +5,13 @@ import {usePostTokenGenerate} from '@/hooks/usePostTokenGenerate' import {useDeleteTokenById} from '@/hooks/useDeleteTokenById' import {useQueryClient} from '@tanstack/react-query' import {legacyApiClient} from '@/utils/queryClient' -import {CurrentUser, ListToken} from '@gitmono/types' +import {ListToken} from '@gitmono/types' import toast from "react-hot-toast"; import HandleTime from "@/components/MrView/components/HandleTime"; import {useGetCurrentUser} from "@/hooks/useGetCurrentUser"; -const UserCard = ({user}: {user: CurrentUser}) => { - return ( -
- {user.display_name} - {user.username} -
- ) -} - -const TokenItem = ({item, user}: { +const TokenItem = ({item}: { item: ListToken - user: CurrentUser }) => { const {mutate: deleteToken} = useDeleteTokenById() const queryClient = useQueryClient() @@ -34,7 +24,6 @@ const TokenItem = ({item, user}: {

Token #{item.id}

{item.token}

-

@@ -59,29 +48,9 @@ const TokenItem = ({item, user}: { ) } -const PersonalToken = () => { - const {tokenList, isLoading} = useGetTokenList() - const {mutate: generateToken, isPending: isGenerating} = usePostTokenGenerate() - const queryClient = useQueryClient() - const fetchTokenList = legacyApiClient.v1.getApiUserTokenList() - - const [generated, setGenerated] = useState(null) +const CopySpace = ({ copyText }: { copyText: string }) => { const [copied, setCopied] = useState(false) - const { data: currentUser, isLoading: isUserLoading } = useGetCurrentUser() - - const handleGenerate = () => { - generateToken(undefined, { - onSuccess: (result) => { - setGenerated(result?.data ?? null) - queryClient.invalidateQueries({queryKey: fetchTokenList.requestKey()}) - } - }) - } - - const handleCopy = async () => { - if (!generated) return - const copyText = `${generated}\n\n@${currentUser?.username}` - + const handleCopy = async (copyText: string) => { if (navigator.clipboard) { await navigator.clipboard .writeText(copyText) @@ -106,6 +75,38 @@ const PersonalToken = () => { setTimeout(() => setCopied(false), 2000) } + return ( +
+ + {copyText} + + +
+ ) +} + +const PersonalToken = () => { + const {tokenList, isLoading} = useGetTokenList() + const {mutate: generateToken, isPending: isGenerating} = usePostTokenGenerate() + const queryClient = useQueryClient() + const fetchTokenList = legacyApiClient.v1.getApiUserTokenList() + + const [generated, setGenerated] = useState(null) + const { data: currentUser, isLoading: isUserLoading } = useGetCurrentUser() + + const handleGenerate = () => { + generateToken(undefined, { + onSuccess: (result) => { + setGenerated(result?.data ?? null) + queryClient.invalidateQueries({queryKey: fetchTokenList.requestKey()}) + } + }) + } + return (
@@ -127,15 +128,14 @@ const PersonalToken = () => { recognize.

- {generated && ( + {generated && currentUser && (

Your new token has been generated.

-
- {generated} - +
+ Username: + + Token: +

Make sure to copy your new token now. You won’t be able to see it again.

@@ -151,7 +151,7 @@ const PersonalToken = () => { ) : (
{currentUser && tokenList.map((item) => ( - + ))}
)} diff --git a/moon/apps/web/package.json b/moon/apps/web/package.json index 59659acbe..fde5fb53d 100644 --- a/moon/apps/web/package.json +++ b/moon/apps/web/package.json @@ -40,6 +40,7 @@ "@primer/react": "catalog:", "@radix-ui/react-accordion": "catalog:", "@radix-ui/react-context-menu": "^2.2.15", + "@radix-ui/react-collapsible": "catalog:", "@radix-ui/react-dialog": "catalog:", "@radix-ui/react-hover-card": "catalog:", "@radix-ui/react-popover": "catalog:", diff --git a/moon/pnpm-lock.yaml b/moon/pnpm-lock.yaml index 069ad57ea..a879bc07b 100644 --- a/moon/pnpm-lock.yaml +++ b/moon/pnpm-lock.yaml @@ -84,6 +84,9 @@ catalogs: '@radix-ui/react-accordion': specifier: ^1.2.0 version: 1.2.11 + '@radix-ui/react-collapsible': + specifier: ^1.1.1 + version: 1.1.11 '@radix-ui/react-context-menu': specifier: ^2.2.1 version: 2.2.15 @@ -845,6 +848,9 @@ importers: '@radix-ui/react-accordion': specifier: 'catalog:' version: 1.2.11(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-collapsible': + specifier: 'catalog:' + version: 1.1.11(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-context-menu': specifier: ^2.2.15 version: 2.2.15(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) diff --git a/moon/pnpm-workspace.yaml b/moon/pnpm-workspace.yaml index cb5ff1fe0..7a69aa304 100644 --- a/moon/pnpm-workspace.yaml +++ b/moon/pnpm-workspace.yaml @@ -33,6 +33,7 @@ catalog: '@primer/react': ^37.27.0 '@radix-ui/react-accordion': ^1.2.0 '@radix-ui/react-context-menu': ^2.2.1 + '@radix-ui/react-collapsible': ^1.1.1 '@radix-ui/react-dialog': ^1.1.1 '@radix-ui/react-dropdown-menu': ^2.1.1 '@radix-ui/react-hover-card': ^1.1.1