From 993e084a5caead44f3faffd9da8d3ccb1d2b4a7e Mon Sep 17 00:00:00 2001 From: juanlou1217 Date: Sun, 1 Feb 2026 17:28:06 +0800 Subject: [PATCH 1/4] feat(theme): Complete theme color system migration for CL, Issue, Queue, OrionClient, and Settings modules --- .../web/components/ClBox/ChecksSection.tsx | 27 ++++---- moon/apps/web/components/ClBox/MergeBox.tsx | 4 +- .../web/components/ClBox/ReviewerSection.tsx | 8 +-- .../ClBox/components/CheckGroup.tsx | 12 ++-- .../ClBox/components/MergeCheckItem.tsx | 16 ++--- moon/apps/web/components/ClView/CLComment.tsx | 6 +- .../web/components/ClView/ConversationTab.tsx | 22 ++++--- .../web/components/ClView/ReviewComment.tsx | 16 +++-- .../web/components/ClView/TimelineItems.tsx | 24 +++---- .../ClView/components/Checks/cpns/Task.tsx | 14 ++-- .../ClView/components/Checks/index.tsx | 49 +++++++------- .../ClView/filters/DropdownItems.tsx | 8 +-- .../ClView/filters/FilterDropdown.tsx | 4 +- .../ClView/filters/dropdown/OrderDropdown.tsx | 2 +- .../filters/dropdown/ReviewDropdown.tsx | 2 +- moon/apps/web/components/ClView/index.tsx | 8 +-- .../CodeView/Tags/NewMonoTagDialog.tsx | 2 +- .../apps/web/components/Issues/TitleInput.tsx | 4 +- .../components/Issues/WorkWithChatDialog.tsx | 42 ++++++------ .../components/OrionClient/ClientsTable.tsx | 2 +- moon/apps/web/components/QueueView/items.tsx | 26 ++++---- moon/apps/web/components/QueueView/stats.tsx | 66 ++++++++++--------- moon/apps/web/components/Setting/GPGKeys.tsx | 2 +- .../web/components/Setting/PersonalToken.tsx | 30 +++++---- moon/apps/web/components/Setting/SSHKeys.tsx | 2 +- .../ThemedMarkdown/ThemedMarkdown.module.css | 17 ----- moon/apps/web/pages/[org]/cl/[link]/index.tsx | 6 +- .../web/pages/[org]/issue/[link]/index.tsx | 5 +- moon/apps/web/styles/global.css | 3 + 29 files changed, 217 insertions(+), 212 deletions(-) diff --git a/moon/apps/web/components/ClBox/ChecksSection.tsx b/moon/apps/web/components/ClBox/ChecksSection.tsx index 28659ef23..e932d3ce1 100644 --- a/moon/apps/web/components/ClBox/ChecksSection.tsx +++ b/moon/apps/web/components/ClBox/ChecksSection.tsx @@ -69,13 +69,13 @@ const CheckStatus = ({ return (
{hasFailures ? ( - + ) : ( - + )}

{hasFailures ? 'Some checks were not successful' : 'All checks have passed'}

-

{statusInfo.join(', ')}

+

{statusInfo.join(', ')}

{isOutdated && ( @@ -85,8 +85,7 @@ const CheckStatus = ({ onUpdateBranch() }} disabled={isUpdating} - style={{ backgroundColor: '#f6f8fa' }} - className='flex-shrink-0 rounded-md border border-gray-300 px-3 py-1.5 text-sm font-medium text-gray-700 hover:bg-gray-100 disabled:cursor-not-allowed disabled:opacity-50' + className='border-primary bg-secondary hover:bg-tertiary text-secondary flex-shrink-0 rounded-md border px-3 py-1.5 text-sm font-medium disabled:cursor-not-allowed disabled:opacity-50' > {isUpdating ? ( @@ -106,7 +105,7 @@ const CheckStatus = ({ const CheckGroup = ({ title, checks }: CheckGroupProps) => (
-

+

{title} ({checks.length})

@@ -141,25 +140,25 @@ const getStatusIcon = (status: AdditionalCheckStatus) => { } const AdditionalCheckItemComponent = ({ check }: AdditionalCheckItemProps) => ( -
+
{getStatusIcon(check.result)}
-
{ADDITIONAL_CHECK_LABELS[check.type]}
+
{ADDITIONAL_CHECK_LABELS[check.type]}
{check.result.toLowerCase()}
{check.result === 'FAILED' && ( -
    +
    • {check.message}
    )} @@ -178,7 +177,7 @@ const AdditionalChecksSection = ({ additionalChecks }: AdditionalChecksSectionPr return (
    -

    +

    Additional Checks ({additionalChecks.length})

    @@ -236,7 +235,7 @@ export function ChecksSection({ checks, onStatusChange, additionalChecks, clLink <> {/* CheckStatus section */} - + (({ prId, s return (
    - + {isReviewerLoading && isAdditionLoading ? (
    ) : ( -
    +
    +
    All required reviewers have approved @@ -20,11 +20,11 @@ export function ReviewerSection({ required, actual }: ReviewerSectionProps) { } return ( -
    - +
    +
    Review required
    -
    +
    {`At least ${required} reviewer${required > 1 ? 's' : ''} required with write access, now has ${actual}`}
    diff --git a/moon/apps/web/components/ClBox/components/CheckGroup.tsx b/moon/apps/web/components/ClBox/components/CheckGroup.tsx index c10c47eaf..d9bfe9972 100644 --- a/moon/apps/web/components/ClBox/components/CheckGroup.tsx +++ b/moon/apps/web/components/ClBox/components/CheckGroup.tsx @@ -26,18 +26,18 @@ export function CheckGroup({ title, summary, status, children }: CheckGroupProps return (
    - +
    -

    {title}

    - {summary} +

    {title}

    + {summary}
    {isOpen ? ( - + ) : ( - + )}
    - {children} + {children}
    ) diff --git a/moon/apps/web/components/ClBox/components/MergeCheckItem.tsx b/moon/apps/web/components/ClBox/components/MergeCheckItem.tsx index c328074bf..b14a1b95d 100644 --- a/moon/apps/web/components/ClBox/components/MergeCheckItem.tsx +++ b/moon/apps/web/components/ClBox/components/MergeCheckItem.tsx @@ -3,23 +3,23 @@ import { AlertIcon, CheckCircleIcon, WarningTriangleIcon } from '@gitmono/ui' import { TaskData } from '../types/mergeCheck.config' const statusMap = { - Pending: { Icon: WarningTriangleIcon, className: 'text-yellow-600' }, - Success: { Icon: CheckCircleIcon, className: 'text-green-600' }, - Failure: { Icon: AlertIcon, className: 'text-red-600' }, - Warning: { Icon: WarningTriangleIcon, className: 'text-yellow-600' } // GitHub 通常用黄点表示 in-progress 或 warning + Pending: { Icon: WarningTriangleIcon, className: 'text-yellow-600 dark:text-yellow-500' }, + Success: { Icon: CheckCircleIcon, className: 'text-green-600 dark:text-green-400' }, + Failure: { Icon: AlertIcon, className: 'text-red-600 dark:text-red-400' }, + Warning: { Icon: WarningTriangleIcon, className: 'text-yellow-600 dark:text-yellow-500' } } export function MergeCheckItem({ check }: { check: TaskData }) { const { Icon, className } = statusMap[check.status] return ( -
    +
    - {check.repo_name} - {check.arguments && {check.arguments}} + {check.repo_name} + {check.arguments && {check.arguments}}
    - +
    ) } diff --git a/moon/apps/web/components/ClView/CLComment.tsx b/moon/apps/web/components/ClView/CLComment.tsx index a95a0f13d..697e461ca 100644 --- a/moon/apps/web/components/ClView/CLComment.tsx +++ b/moon/apps/web/components/ClView/CLComment.tsx @@ -45,8 +45,8 @@ const Comment = React.memo(({ conv, id, whoamI, editorRef }: Comme const [refresh, setRefresh] = useAtom(refreshAtom) return ( -
    -
    +
    +
    (({ conv, id, whoamI, editorRef }: Comme
    -
    +
    diff --git a/moon/apps/web/components/ClView/ConversationTab.tsx b/moon/apps/web/components/ClView/ConversationTab.tsx index c066fcb78..de14d4a28 100644 --- a/moon/apps/web/components/ClView/ConversationTab.tsx +++ b/moon/apps/web/components/ClView/ConversationTab.tsx @@ -192,11 +192,13 @@ export const ConversationTab = React.memo( emptyExtra={ clDetail && clDetail.status === 'Open' && ( -
    +
    Still in progress? Convert to draft + + Convert to draft + } link={clDetail.link} /> @@ -214,12 +216,14 @@ export const ConversationTab = React.memo( const isApproved = reviewer?.approved ?? false return ( -
    +
    {i} {isApproved ? 'Approved' : 'Pending'} @@ -241,7 +245,7 @@ export const ConversationTab = React.memo( e.stopPropagation() handleDeleteReviewer(i) }} - className='pointer-events-auto cursor-pointer rounded-full border-2 hover:bg-red-800' + className='pointer-events-auto cursor-pointer rounded-full border-2 hover:bg-red-800 hover:text-white' > @@ -250,11 +254,11 @@ export const ConversationTab = React.memo( ) })} {clDetail && clDetail.status === 'Open' && ( -
    +
    Still in progress? + Convert to draft } @@ -281,7 +285,7 @@ export const ConversationTab = React.memo( return ( <> {names.map((i) => ( -
    +
    {i}
    @@ -327,7 +331,7 @@ export const ConversationTab = React.memo( -
    +
    diff --git a/moon/apps/web/components/ClView/ReviewComment.tsx b/moon/apps/web/components/ClView/ReviewComment.tsx index 03da0793b..aa226e46d 100644 --- a/moon/apps/web/components/ClView/ReviewComment.tsx +++ b/moon/apps/web/components/ClView/ReviewComment.tsx @@ -105,20 +105,22 @@ const ReviewComment = React.memo( return (
    -
    +
    📝 Review Comment {isResolved && ( - + ✓ Resolved )}
    -
    +
    (
    -
    +
    @@ -158,7 +160,7 @@ const ReviewComment = React.memo( size='sm' variant='base' onClick={handleResolve} - className='border-green-300 text-green-600 hover:bg-green-50' + className='border-green-300 text-green-600 hover:bg-green-50 dark:border-green-700 dark:text-green-400 dark:hover:bg-green-950' > Resolve Conversation diff --git a/moon/apps/web/components/ClView/TimelineItems.tsx b/moon/apps/web/components/ClView/TimelineItems.tsx index 4b5e99284..1f661269f 100644 --- a/moon/apps/web/components/ClView/TimelineItems.tsx +++ b/moon/apps/web/components/ClView/TimelineItems.tsx @@ -1,7 +1,4 @@ import React, { useMemo } from 'react' - -import '@primer/primitives/dist/css/functional/themes/light.css' - import { CheckCircleIcon, CommentIcon, @@ -14,6 +11,7 @@ import { RepoPushIcon } from '@primer/octicons-react' import { BaseStyles, ThemeProvider, Timeline } from '@primer/react' +import { useTheme } from 'next-themes' import { ConversationItem, ReviewerInfo } from '@gitmono/types/generated' @@ -63,8 +61,10 @@ const TimelineItem = React.memo(({ badge, children, isOver }: TimelineItemProps) TimelineItem.displayName = 'TimelineItem' const TimelineWrapper = React.memo(({ convItems = [] }) => { + const { theme } = useTheme() + return ( - + {convItems?.map((item) => ( @@ -106,38 +106,38 @@ const TimelineItems = React.memo<{ icon = children = } else { - icon = + icon = children = } break case 'Approve': - icon = + icon = children = break case 'Merged': - icon = + icon = children = isOver = true break case 'Closed': - icon = + icon = children = isOver = true break case 'Draft': - icon = + icon = children = break case 'Reopen': - icon = + icon = children = break case 'Assignee': - icon = + icon = children = break case 'Label': - icon = + icon = children = break case 'ForcePush': diff --git a/moon/apps/web/components/ClView/components/Checks/cpns/Task.tsx b/moon/apps/web/components/ClView/components/Checks/cpns/Task.tsx index 2e41fa7cc..4cc53059e 100644 --- a/moon/apps/web/components/ClView/components/Checks/cpns/Task.tsx +++ b/moon/apps/web/components/ClView/components/Checks/cpns/Task.tsx @@ -70,12 +70,12 @@ export const Task = ({ list, logStatus }: { list: TaskInfoDTO; logStatus: Record <>
    setExtend(!extend)} - className='flex w-full cursor-pointer items-center gap-4 border border-t-0 bg-[#fff] pl-4' + className='border-primary bg-primary flex w-full cursor-pointer items-center gap-4 border border-t-0 pl-4' > {extend ? : }
    - {list.task_name} - {formatDateTime(list.created_at)} + {list.task_name} + {formatDateTime(list.created_at)}
    {/* {extend && list} */}
    @@ -114,7 +114,7 @@ export const TaskItem = ({ build, logStatus }: { build: BuildDTO; logStatus?: Lo > {/* {identifyStatus(statusMap.get(build.id)?.status || Status.NotFound)} */} {identifyStatus(build.status || Status.NotFound)} - {build.id} + {build.id}
    ) @@ -123,9 +123,9 @@ export const TaskItem = ({ build, logStatus }: { build: BuildDTO; logStatus?: Lo export const identifyStatus = (status: Status[keyof Status]) => { switch (status) { case Status.Completed: - return + return case Status.Failed: - return + return case Status.Building: return case Status.Pending: @@ -134,6 +134,6 @@ export const identifyStatus = (status: Status[keyof Status]) => { return default: - return + return } } diff --git a/moon/apps/web/components/ClView/components/Checks/index.tsx b/moon/apps/web/components/ClView/components/Checks/index.tsx index dd70569f5..8d9bb62f8 100644 --- a/moon/apps/web/components/ClView/components/Checks/index.tsx +++ b/moon/apps/web/components/ClView/components/Checks/index.tsx @@ -168,13 +168,13 @@ const Checks = ({ cl }: { cl: number }) => { // Handle tasks loading state if (isTasksLoading) { return ( -
    -
    +
    +
    -

    [] tasks status interface

    +

    [] tasks status interface

    -
    +
    Loading tasks... @@ -187,13 +187,13 @@ const Checks = ({ cl }: { cl: number }) => { // Handle tasks error or empty state if (isTasksError) { return ( -
    -
    +
    +
    -

    [] tasks status interface

    +

    [] tasks status interface

    -
    +
    Failed to fetch tasks
    @@ -204,13 +204,13 @@ const Checks = ({ cl }: { cl: number }) => { if (!isTasksLoading && (!tasks || tasks.length === 0 || validTasks.length === 0)) { return ( -
    -
    +
    +
    -

    [] tasks status interface

    +

    [] tasks status interface

    -
    +
    No tasks available
    @@ -221,7 +221,7 @@ const Checks = ({ cl }: { cl: number }) => { const renderLogContent = () => { if (!buildid) { return ( -
    +
    Select a build to view logs
    ) @@ -232,7 +232,7 @@ const Checks = ({ cl }: { cl: number }) => { // If status is undefined or idle, user needs to select a build if (!status || status === 'idle') { return ( -
    +
    Select a build to view logs
    ) @@ -240,7 +240,7 @@ const Checks = ({ cl }: { cl: number }) => { if (status === 'loading') { return ( -
    +
    Loading logs...
    ) @@ -248,7 +248,7 @@ const Checks = ({ cl }: { cl: number }) => { if (status === 'error') { return ( -
    +
    Failed to fetch logs
    ) @@ -256,7 +256,7 @@ const Checks = ({ cl }: { cl: number }) => { if (status === 'empty') { return ( -
    +
    No logs available
    ) @@ -272,7 +272,7 @@ const Checks = ({ cl }: { cl: number }) => { // Fallback: show select prompt return ( -
    +
    Select a build to view logs
    ) @@ -280,14 +280,17 @@ const Checks = ({ cl }: { cl: number }) => { return ( <> -
    -
    +
    +
    -

    [] tasks status interface

    +

    [] tasks status interface

    -
    +
    {validTasks.map((t) => ( ))} @@ -295,7 +298,7 @@ const Checks = ({ cl }: { cl: number }) => { {/* Resizer handle */}
    {renderLogContent()}
    diff --git a/moon/apps/web/components/ClView/filters/DropdownItems.tsx b/moon/apps/web/components/ClView/filters/DropdownItems.tsx index 613ffa0ca..89f16961e 100644 --- a/moon/apps/web/components/ClView/filters/DropdownItems.tsx +++ b/moon/apps/web/components/ClView/filters/DropdownItems.tsx @@ -20,8 +20,8 @@ export const DropdownItemwithAvatar = ({ )} > - {member.user.display_name} - {member.user.username} + {member.user.display_name} + {member.user.username}
    ) } @@ -38,8 +38,8 @@ export const DropdownItemwithLabel = ({ classname, label }: { classname?: string className='h-3.5 w-3.5 rounded-full border' style={{ backgroundColor: label.color, borderColor: label.color }} /> - {label.name} - {label.description} + {label.name} + {label.description}
    ) } diff --git a/moon/apps/web/components/ClView/filters/FilterDropdown.tsx b/moon/apps/web/components/ClView/filters/FilterDropdown.tsx index 3645988db..b643552a4 100644 --- a/moon/apps/web/components/ClView/filters/FilterDropdown.tsx +++ b/moon/apps/web/components/ClView/filters/FilterDropdown.tsx @@ -82,7 +82,7 @@ export function FilterDropdown({ onOpenChange={handleOpenChange} key={name} align='end' - desktop={{ width: 'w-72 max-h-[50vh] overflow-auto bg-white' }} + desktop={{ width: 'w-72 max-h-[50vh] overflow-auto bg-primary' }} items={[ { type: 'item', @@ -115,7 +115,7 @@ export function FilterDropdown({ align='end' open={open} onOpenChange={handleOpenChange} - desktop={{ width: 'w-72 max-h-[50vh] overflow-auto bg-white' }} + desktop={{ width: 'w-72 max-h-[50vh] overflow-auto bg-primary' }} items={[ { type: 'item', diff --git a/moon/apps/web/components/ClView/filters/dropdown/OrderDropdown.tsx b/moon/apps/web/components/ClView/filters/dropdown/OrderDropdown.tsx index 4c2eff16c..13d6af871 100644 --- a/moon/apps/web/components/ClView/filters/dropdown/OrderDropdown.tsx +++ b/moon/apps/web/components/ClView/filters/dropdown/OrderDropdown.tsx @@ -47,7 +47,7 @@ export function OrderDropdown({ sortOptions, timeOptions, currentSort, currentTi diff --git a/moon/apps/web/components/ClView/index.tsx b/moon/apps/web/components/ClView/index.tsx index 8c7176811..faf68f433 100644 --- a/moon/apps/web/components/ClView/index.tsx +++ b/moon/apps/web/components/ClView/index.tsx @@ -358,8 +358,8 @@ export default function CLView() { id='/[org]/cl' className={cn('@container', 'max-w-full lg:max-w-5xl xl:max-w-6xl 2xl:max-w-7xl')} > -
    -
    +
    +
    @@ -368,7 +368,7 @@ export default function CLView() { value={searchQuery} readOnly placeholder='Filter change list by author, labels , assignee, or review...' - className='w-full flex-1 border-none bg-transparent text-sm text-gray-400 outline-none ring-0 focus:outline-none focus:ring-0' + className='text-secondary placeholder:text-quaternary w-full flex-1 border-none bg-transparent text-sm outline-none ring-0 focus:outline-none focus:ring-0' /> {searchQuery && ( @@ -376,7 +376,7 @@ export default function CLView() { onClick={() => { clearAllFilters() }} - className='flex items-center justify-center rounded-md p-1 text-gray-400 transition-all hover:bg-gray-100 hover:text-gray-600' + className='text-quaternary hover:bg-tertiary hover:text-secondary flex items-center justify-center rounded-md p-1 transition-all' title='Clear search' > diff --git a/moon/apps/web/components/CodeView/Tags/NewMonoTagDialog.tsx b/moon/apps/web/components/CodeView/Tags/NewMonoTagDialog.tsx index df0be82a3..5a9322c68 100644 --- a/moon/apps/web/components/CodeView/Tags/NewMonoTagDialog.tsx +++ b/moon/apps/web/components/CodeView/Tags/NewMonoTagDialog.tsx @@ -20,7 +20,7 @@ import { useCreateMonoTag } from '@/hooks/useCreateMonoTag' import { useGetCurrentUser } from '@/hooks/useGetCurrentUser' import { useGetTreeCommitInfo } from '@/hooks/useGetTreeCommitInfo' -import { useGetLatestCommit } from '../../../hooks/useGetLatestCommit' +import { useGetLatestCommit } from '@/hooks/useGetLatestCommit' interface Props { open: boolean diff --git a/moon/apps/web/components/Issues/TitleInput.tsx b/moon/apps/web/components/Issues/TitleInput.tsx index df94d1b26..bc002b1ba 100644 --- a/moon/apps/web/components/Issues/TitleInput.tsx +++ b/moon/apps/web/components/Issues/TitleInput.tsx @@ -73,10 +73,10 @@ const TitleInput = ({ {!isEdit && ( <>
    - + {`${title || ''}`}   - ${id} + ${id}
    @@ -79,11 +79,12 @@ export function WorkWithChatDialog() { onFocus={handleFocus} onBlur={handleBlur} placeholder='' - className='w-full resize-none border-0 bg-transparent text-sm focus:outline-none focus:ring-0' + className={`w-full resize-none border-0 bg-transparent text-sm focus:outline-none focus:ring-0 ${ + isShowingHint ? 'text-quaternary' : 'text-primary' + }`} style={{ minHeight: '60px', - lineHeight: '1.4', - color: isShowingHint ? '#8d9297' : '#374151' + lineHeight: '1.4' }} rows={3} /> @@ -97,19 +98,19 @@ export function WorkWithChatDialog() { variant='plain' iconOnly={} accessibilityLabel='Mention' - className='h-6 w-6 p-0 text-gray-600 hover:text-gray-800' + className='text-tertiary hover:text-primary h-6 w-6 p-0' />
    @@ -120,7 +121,7 @@ export function WorkWithChatDialog() {
    @@ -105,7 +105,7 @@ const PersonalToken = () => { } return ( -
    +

    Personal tokens

    - {(clDetail as any)?.path && {(clDetail as any).path}} + {(clDetail as any)?.path && {(clDetail as any).path}}
    ) } return ( - +
    {clDetail && ( diff --git a/moon/apps/web/pages/[org]/issue/[link]/index.tsx b/moon/apps/web/pages/[org]/issue/[link]/index.tsx index d69d4e1aa..4f0638445 100644 --- a/moon/apps/web/pages/[org]/issue/[link]/index.tsx +++ b/moon/apps/web/pages/[org]/issue/[link]/index.tsx @@ -1,5 +1,6 @@ import { BaseStyles, ThemeProvider } from '@primer/react' import { GetServerSideProps } from 'next' +import { useTheme } from 'next-themes' import IssueDetailPage from '@/components/Issues/IssueDetailPage' import { AppLayout } from '@/components/Layout/AppLayout' @@ -23,9 +24,11 @@ export const getServerSideProps: GetServerSideProps = async ({ query }) => { } const OrganizationIssueDetailPage: PageWithLayout = ({ link }) => { + const { theme } = useTheme() + return ( <> - + diff --git a/moon/apps/web/styles/global.css b/moon/apps/web/styles/global.css index dab6e6975..a991a7f92 100644 --- a/moon/apps/web/styles/global.css +++ b/moon/apps/web/styles/global.css @@ -1,3 +1,6 @@ +@import '@primer/primitives/dist/css/functional/themes/light.css'; +@import '@primer/primitives/dist/css/functional/themes/dark.css'; + @tailwind base; @tailwind components; @tailwind utilities; From 90347b1868e6f510c127739ae620b53058bd5ffd Mon Sep 17 00:00:00 2001 From: juanlou1217 Date: Sun, 1 Feb 2026 17:37:39 +0800 Subject: [PATCH 2/4] feat(theme): Complete theme color system migration for CL, Issue, Queue, OrionClient, and Settings modules --- moon/apps/web/components/CodeView/Tags/NewMonoTagDialog.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/moon/apps/web/components/CodeView/Tags/NewMonoTagDialog.tsx b/moon/apps/web/components/CodeView/Tags/NewMonoTagDialog.tsx index 5a9322c68..ef0c42ef0 100644 --- a/moon/apps/web/components/CodeView/Tags/NewMonoTagDialog.tsx +++ b/moon/apps/web/components/CodeView/Tags/NewMonoTagDialog.tsx @@ -18,9 +18,8 @@ import { Dialog } from '@gitmono/ui/Dialog' import { useCreateMonoTag } from '@/hooks/useCreateMonoTag' import { useGetCurrentUser } from '@/hooks/useGetCurrentUser' -import { useGetTreeCommitInfo } from '@/hooks/useGetTreeCommitInfo' - import { useGetLatestCommit } from '@/hooks/useGetLatestCommit' +import { useGetTreeCommitInfo } from '@/hooks/useGetTreeCommitInfo' interface Props { open: boolean From d8dea7845a14927912fb709b4c88a0e3aa6a03a4 Mon Sep 17 00:00:00 2001 From: juanlou1217 Date: Sun, 1 Feb 2026 20:32:19 +0800 Subject: [PATCH 3/4] feat(theme): Complete theme color system migration for CL, Issue, Queue, OrionClient, and Settings modules --- moon/apps/web/components/ClView/TimelineItems.tsx | 2 +- moon/apps/web/components/Issues/WorkWithChatDialog.tsx | 5 +---- .../Theme/ThemedMarkdown/ThemedMarkdown.module.css | 1 + 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/moon/apps/web/components/ClView/TimelineItems.tsx b/moon/apps/web/components/ClView/TimelineItems.tsx index 1f661269f..72161bd79 100644 --- a/moon/apps/web/components/ClView/TimelineItems.tsx +++ b/moon/apps/web/components/ClView/TimelineItems.tsx @@ -64,7 +64,7 @@ const TimelineWrapper = React.memo(({ convItems = [] }) => const { theme } = useTheme() return ( - + {convItems?.map((item) => ( diff --git a/moon/apps/web/components/Issues/WorkWithChatDialog.tsx b/moon/apps/web/components/Issues/WorkWithChatDialog.tsx index 01c6fd4c8..671c86003 100644 --- a/moon/apps/web/components/Issues/WorkWithChatDialog.tsx +++ b/moon/apps/web/components/Issues/WorkWithChatDialog.tsx @@ -40,10 +40,7 @@ export function WorkWithChatDialog() {
    {/* Top Icon and Title */}
    -
    +
    diff --git a/moon/apps/web/components/Theme/ThemedMarkdown/ThemedMarkdown.module.css b/moon/apps/web/components/Theme/ThemedMarkdown/ThemedMarkdown.module.css index 03c84b90b..2be51f448 100644 --- a/moon/apps/web/components/Theme/ThemedMarkdown/ThemedMarkdown.module.css +++ b/moon/apps/web/components/Theme/ThemedMarkdown/ThemedMarkdown.module.css @@ -123,6 +123,7 @@ line-height: 1.45; background-color: var(--bgColor-muted); border-radius: 6px; + font-family: var(--fontStack-monospace); margin-bottom: var(--base-size-16); } From 9ec8afe23f651538e8a415bce8bf8a28c87dba8a Mon Sep 17 00:00:00 2001 From: juanlou1217 Date: Sun, 1 Feb 2026 20:43:40 +0800 Subject: [PATCH 4/4] feat(theme): Complete theme color system migration for CL, Issue, Queue, OrionClient, and Settings modules --- moon/apps/web/components/Issues/IssueSearch.tsx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/moon/apps/web/components/Issues/IssueSearch.tsx b/moon/apps/web/components/Issues/IssueSearch.tsx index ff3482928..95224eb13 100644 --- a/moon/apps/web/components/Issues/IssueSearch.tsx +++ b/moon/apps/web/components/Issues/IssueSearch.tsx @@ -19,9 +19,9 @@ interface IssueSearchProps { export default function IssueSearch({ filterQuery, onClearFilters }: IssueSearchProps) { return ( <> -
    -
    -
    +
    +
    +
    @@ -30,12 +30,12 @@ export default function IssueSearch({ filterQuery, onClearFilters }: IssueSearch value={filterQuery || ''} readOnly placeholder='Filter issues by author, labels, or assignee...' - className='w-full flex-1 border-none bg-transparent text-sm text-gray-400 outline-none ring-0 focus:outline-none focus:ring-0' + className='text-quaternary placeholder:text-quaternary w-full flex-1 border-none bg-transparent text-sm outline-none ring-0 focus:outline-none focus:ring-0' /> {filterQuery && (