fix: 优化侧栏并接入品牌脱敏

This commit is contained in:
fengxiangdebaozi committed 2026-07-16 09:48:40 +08:00
1 parent 0bd0ac41cd
commit 4a59da7ff0
6 files changed
+43 -55

No files matched your search

@@ -1,6 +1,5 @@
import { useEffect, useRef, useState } from "react";
import { useNavigate, useLocation } from "react-router-dom";
import { PanelLeftOpen, PanelLeftClose } from "lucide-react";
import { getStoredAuth } from "@/core/auth";
import { isWujieEnv } from "@/core/embed/wujie";
@@ -13,13 +12,7 @@ import {
import { useSidebarMenuItems } from "@/core/page-layout/use-sidebar-menu";
import './page-sdebar.css'
type PageSidebarDarkProps = {
/** 是否收起(true 时只渲染左下角浮动入口,sidebar 主体隐藏) */
collapsed: boolean;
onToggleCollapsed: () => void;
};
export function PageSidebarDark({ collapsed, onToggleCollapsed }: PageSidebarDarkProps) {
export function PageSidebarDark() {
const isAdmin = getStoredAuth()?.system_role === "admin";
const visibleMenuItems = useSidebarMenuItems(!!isAdmin);
const inWujieEnv = isWujieEnv();
@@ -196,22 +189,6 @@ export function PageSidebarDark({ collapsed, onToggleCollapsed }: PageSidebarDar
</div>
);
// collapsed 状态:sidebar 主体完全消失(包括占据的宽度),只渲染左下角浮动入口
if (collapsed) {
return (
<button
type="button"
title="展开侧边栏"
aria-label="展开侧边栏"
className="sidebar-collapse-btn sidebar-collapse-btn--floating"
onClick={onToggleCollapsed}
>
<PanelLeftOpen className="sidebar-collapse-btn__icon" aria-hidden="true" />
<span className="sidebar-collapse-btn__label">收起面板</span>
</button>
);
}
return (
<aside className={`sidebar-contnet ${inWujieEnv ? "" : "sidebar-contnet--top-submenu"}`}>
<div className="sidebar-contents">
@@ -243,18 +220,6 @@ export function PageSidebarDark({ collapsed, onToggleCollapsed }: PageSidebarDar
</div>
</div>
))}
{/* 底部"收起面板"按钮:独立样式,mt-auto 推到底 */}
<button
type="button"
title="收起侧边栏"
aria-label="收起侧边栏"
className="sidebar-collapse-btn sidebar-collapse-btn--inline"
onClick={onToggleCollapsed}
>
<PanelLeftClose className="sidebar-collapse-btn__icon" aria-hidden="true" />
<span className="sidebar-collapse-btn__label">收起面板</span>
</button>
</div>
</aside>
);
@@ -1,6 +1,7 @@
"use client";
import { cn } from "@/lib/utils";
import { useDisplayDesensitizer } from "@/core/sensitive-words/use-display-desensitizer";
/**
* 紧凑模式(正常 App)新对话落地页的品牌欢迎块 —— 按 CM-assistant 参考图重画。
@@ -8,6 +9,8 @@ import { cn } from "@/lib/utils";
* 非紧凑模式仍用 <Welcome/>,本组件不参与。
*/
export function CompactWelcome({ className }: { className?: string }) {
const desensitizeText = useDisplayDesensitizer();
return (
<div
className={cn(
@@ -33,13 +36,13 @@ export function CompactWelcome({ className }: { className?: string }) {
}}
>
<span className="text-2xl font-black tracking-wide text-white italic">
CM
{desensitizeText("CM")}
</span>
</div>
</div>
<h1 className="flex items-center justify-center text-2xl font-bold tracking-tight text-foreground/90">
欢迎使用CM助手
{desensitizeText("欢迎使用CM助手")}
</h1>
<p className="text-muted-foreground mx-auto mt-2 max-w-sm text-xs leading-relaxed">
基于先进深度推理模型,为您提供高效的市场分析、专业报告撰写、调研设计与协同脑暴支持。
@@ -3,7 +3,8 @@
import { useSearchParams } from "next/navigation";
import { useMemo } from "react";
import { useI18n } from "@/core/i18n/hooks";
import { useI18n } from "@/core/i18n/hooks";
import { useDisplayDesensitizer } from "@/core/sensitive-words/use-display-desensitizer";
import { cn } from "@/lib/utils";
import { AuroraText } from "../ui/aurora-text";
@@ -15,7 +16,8 @@ export function Welcome({
className?: string;
mode?: "ultra" | "pro" | "thinking" | "flash";
}) {
const { t } = useI18n();
const { t } = useI18n();
const desensitizeText = useDisplayDesensitizer();
const searchParams = useSearchParams();
const isUltra = useMemo(() => mode === "ultra", [mode]);
const colors = useMemo(() => {
@@ -36,7 +38,7 @@ export function Welcome({
t.welcome.createYourOwnSkill
) : (
<div className="flex items-center">
<AuroraText colors={colors}>{t.welcome.greeting}</AuroraText>
<AuroraText colors={colors}>{desensitizeText(t.welcome.greeting)}</AuroraText>
</div>
)}
</div>