mirror of
https://github.com/Yidadaa/ChatGPT-Next-Web.git
synced 2025-09-14 07:06:53 +08:00
feat: maskpage&newchatpage adapt new ui framework done
This commit is contained in:
51
app/containers/Settings/SettingHeader.tsx
Normal file
51
app/containers/Settings/SettingHeader.tsx
Normal file
@@ -0,0 +1,51 @@
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import { Path } from "@/app/constant";
|
||||
import Locale from "@/app/locales";
|
||||
import GobackIcon from "@/app/icons/goback.svg";
|
||||
|
||||
export interface ChatHeaderProps {
|
||||
isMobileScreen: boolean;
|
||||
goback: () => void;
|
||||
}
|
||||
|
||||
export default function SettingHeader(props: ChatHeaderProps) {
|
||||
const { isMobileScreen, goback } = props;
|
||||
|
||||
const navigate = useNavigate();
|
||||
|
||||
let containerClassName = "";
|
||||
let titleClassName = "mr-4";
|
||||
let mainTitleClassName = "";
|
||||
let subTitleClassName = "";
|
||||
|
||||
if (isMobileScreen) {
|
||||
containerClassName = "h-menu-title-mobile";
|
||||
titleClassName = "flex flex-col items-center justify-center gap-0.5 text";
|
||||
mainTitleClassName = "text-sm-title h-[19px] leading-5";
|
||||
subTitleClassName = "text-sm-mobile-tab leading-4";
|
||||
}
|
||||
|
||||
return (
|
||||
<div
|
||||
className={`relative flex flex-0 justify-between items-center px-6 py-4 gap-chat-header-gap border-b-[1px] border-gray-200 ${containerClassName}`}
|
||||
data-tauri-drag-region
|
||||
>
|
||||
{isMobileScreen ? (
|
||||
<div
|
||||
className="absolute left-4 top-[50%] translate-y-[-50%]"
|
||||
onClick={() => goback()}
|
||||
>
|
||||
<GobackIcon />
|
||||
</div>
|
||||
) : null}
|
||||
|
||||
<div className={`flex-1 ${titleClassName}`}>
|
||||
<div
|
||||
className={`line-clamp-1 cursor-pointer text-black text-chat-header-title font-common ${mainTitleClassName}`}
|
||||
>
|
||||
{Locale.Settings.Title}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
1251
app/containers/Settings/SettingPanel.tsx
Normal file
1251
app/containers/Settings/SettingPanel.tsx
Normal file
File diff suppressed because it is too large
Load Diff
74
app/containers/Settings/index.module.scss
Normal file
74
app/containers/Settings/index.module.scss
Normal file
@@ -0,0 +1,74 @@
|
||||
.settings {
|
||||
padding: 20px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.avatar {
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.edit-prompt-modal {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.edit-prompt-title {
|
||||
max-width: unset;
|
||||
margin-bottom: 20px;
|
||||
text-align: left;
|
||||
}
|
||||
.edit-prompt-content {
|
||||
max-width: unset;
|
||||
}
|
||||
}
|
||||
|
||||
.user-prompt-modal {
|
||||
min-height: 40vh;
|
||||
|
||||
.user-prompt-search {
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
margin-bottom: 10px;
|
||||
background-color: var(--gray);
|
||||
}
|
||||
|
||||
.user-prompt-list {
|
||||
border: var(--border-in-light);
|
||||
border-radius: 10px;
|
||||
|
||||
.user-prompt-item {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: 10px;
|
||||
|
||||
&:not(:last-child) {
|
||||
border-bottom: var(--border-in-light);
|
||||
}
|
||||
|
||||
.user-prompt-header {
|
||||
max-width: calc(100% - 100px);
|
||||
|
||||
.user-prompt-title {
|
||||
font-size: 14px;
|
||||
line-height: 2;
|
||||
font-weight: bold;
|
||||
}
|
||||
.user-prompt-content {
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.user-prompt-buttons {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
column-gap: 2px;
|
||||
|
||||
.user-prompt-button {
|
||||
//height: 100%;
|
||||
padding: 7px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
61
app/containers/Settings/index.tsx
Normal file
61
app/containers/Settings/index.tsx
Normal file
@@ -0,0 +1,61 @@
|
||||
import Locale from "@/app/locales";
|
||||
import useMobileScreen from "@/app/hooks/useMobileScreen";
|
||||
import MenuWrapper from "@/app/components/MenuWrapper";
|
||||
|
||||
import Panel from "./SettingPanel";
|
||||
|
||||
import GotoIcon from "@/app/icons/goto.svg";
|
||||
|
||||
export default MenuWrapper(function SettingList(props) {
|
||||
const { setShowPanel } = props;
|
||||
const isMobileScreen = useMobileScreen();
|
||||
|
||||
let layoutClassName = "pt-7 px-4";
|
||||
let titleClassName = "pb-5";
|
||||
let itemClassName = "";
|
||||
|
||||
if (isMobileScreen) {
|
||||
layoutClassName = "h-[100%] mx-[-1.5rem] px-6 py-6 bg-blue-50";
|
||||
titleClassName = "h-menu-title-mobile";
|
||||
itemClassName = "p-4 bg-white";
|
||||
}
|
||||
|
||||
return (
|
||||
<div className={` ${layoutClassName}`}>
|
||||
<div data-tauri-drag-region>
|
||||
<div
|
||||
className={`flex items-center justify-between ${titleClassName}`}
|
||||
data-tauri-drag-region
|
||||
>
|
||||
<div className="text-setting-title text-black font-common font-setting-title">
|
||||
{Locale.Settings.Title}
|
||||
</div>
|
||||
</div>
|
||||
{/* <div className={`pb-3 text-sm sm:text-sm-mobile text-blue-500`}>
|
||||
{Locale.Settings.SubTitle}
|
||||
</div> */}
|
||||
</div>
|
||||
|
||||
<div
|
||||
className={`flex flex-col overflow-y-auto overflow-x-hidden w-[100%]`}
|
||||
>
|
||||
<div
|
||||
// className={`p-4 font-common text-setting-items font-normal text-black
|
||||
// border-[1px] border-blue-200 border-opacity-0 rounded-md
|
||||
// `}
|
||||
className={`p-4 font-common text-setting-items font-normal text-black
|
||||
border-[1px] border-blue-200 border-opacity-0 rounded-md
|
||||
hover:border-opacity-100 hover:bg-blue-100 ${itemClassName}
|
||||
flex justify-between items-center
|
||||
`}
|
||||
onClick={() => {
|
||||
setShowPanel?.(true);
|
||||
}}
|
||||
>
|
||||
{Locale.Settings.GeneralSettings}
|
||||
{isMobileScreen && <GotoIcon />}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}, Panel);
|
Reference in New Issue
Block a user