mirror of
https://github.com/FranP-code/ChatGPT.git
synced 2025-10-13 00:13:25 +00:00
chore: conf path
This commit is contained in:
107
src/view/General.tsx
vendored
107
src/view/General.tsx
vendored
@@ -1,18 +1,19 @@
|
|||||||
import { useEffect, useState } from 'react';
|
import { useEffect, useState } from 'react';
|
||||||
import { Form, Radio, Switch, Input, Button, Space, message, Tooltip } from 'antd';
|
import { Form, Radio, Switch, Input, Button, Space, message, Tooltip } from 'antd';
|
||||||
import { QuestionCircleOutlined } from '@ant-design/icons';
|
import { QuestionCircleOutlined } from '@ant-design/icons';
|
||||||
import { invoke } from '@tauri-apps/api';
|
import { invoke, shell, path } from '@tauri-apps/api';
|
||||||
import { platform } from '@tauri-apps/api/os';
|
import { platform } from '@tauri-apps/api/os';
|
||||||
import { ask } from '@tauri-apps/api/dialog';
|
import { ask } from '@tauri-apps/api/dialog';
|
||||||
import { relaunch } from '@tauri-apps/api/process';
|
import { relaunch } from '@tauri-apps/api/process';
|
||||||
import { clone, omit, isEqual } from 'lodash';
|
import { clone, omit, isEqual } from 'lodash';
|
||||||
|
|
||||||
import { DISABLE_AUTO_COMPLETE } from '@/utils';
|
import useInit from '@/hooks/useInit';
|
||||||
|
import { DISABLE_AUTO_COMPLETE, chatRoot } from '@/utils';
|
||||||
|
|
||||||
const OriginLabel = ({ url }: { url: string }) => {
|
const OriginLabel = ({ url }: { url: string }) => {
|
||||||
return (
|
return (
|
||||||
<span>
|
<span>
|
||||||
Switch Origin <Tooltip title={`Default: ${url}`}><QuestionCircleOutlined /></Tooltip>
|
Switch Origin <Tooltip title={`Default: ${url}`}><QuestionCircleOutlined style={{ color: '#1677ff' }} /></Tooltip>
|
||||||
</span>
|
</span>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -29,7 +30,7 @@ const GlobalShortcut = () => {
|
|||||||
<a href="https://tauri.app/v1/api/js/globalshortcut" target="_blank">https://tauri.app/v1/api/js/globalshortcut</a>
|
<a href="https://tauri.app/v1/api/js/globalshortcut" target="_blank">https://tauri.app/v1/api/js/globalshortcut</a>
|
||||||
</div>
|
</div>
|
||||||
)}>
|
)}>
|
||||||
<QuestionCircleOutlined />
|
<QuestionCircleOutlined style={{ color: '#1677ff' }} />
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
@@ -37,18 +38,17 @@ const GlobalShortcut = () => {
|
|||||||
|
|
||||||
export default function General() {
|
export default function General() {
|
||||||
const [form] = Form.useForm();
|
const [form] = Form.useForm();
|
||||||
|
const [jsonPath, setJsonPath] = useState('');
|
||||||
const [platformInfo, setPlatform] = useState<string>('');
|
const [platformInfo, setPlatform] = useState<string>('');
|
||||||
const [chatConf, setChatConf] = useState<any>(null);
|
const [chatConf, setChatConf] = useState<any>(null);
|
||||||
|
|
||||||
const init = async () => {
|
useInit(async () => {
|
||||||
|
setJsonPath(await path.join(await chatRoot(), 'chat.conf.json'));
|
||||||
|
|
||||||
setPlatform(await platform());
|
setPlatform(await platform());
|
||||||
const chatData = await invoke('get_chat_conf');
|
const chatData = await invoke('get_chat_conf');
|
||||||
setChatConf(chatData);
|
setChatConf(chatData);
|
||||||
}
|
});
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
init();
|
|
||||||
}, [])
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
form.setFieldsValue(clone(chatConf));
|
form.setFieldsValue(clone(chatConf));
|
||||||
@@ -73,47 +73,54 @@ export default function General() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Form
|
<>
|
||||||
form={form}
|
<div className="chat-table-tip">
|
||||||
style={{ maxWidth: 500 }}
|
<div className="chat-sync-path">
|
||||||
onFinish={onFinish}
|
<div>PATH: <a onClick={() => shell.open(jsonPath)} title={jsonPath}>{jsonPath}</a></div>
|
||||||
labelCol={{ span: 8 }}
|
</div>
|
||||||
wrapperCol={{ span: 15, offset: 1 }}
|
</div>
|
||||||
>
|
<Form
|
||||||
<Form.Item label="Theme" name="theme">
|
form={form}
|
||||||
<Radio.Group>
|
style={{ maxWidth: 500 }}
|
||||||
<Radio value="Light">Light</Radio>
|
onFinish={onFinish}
|
||||||
<Radio value="Dark">Dark</Radio>
|
labelCol={{ span: 8 }}
|
||||||
</Radio.Group>
|
wrapperCol={{ span: 15, offset: 1 }}
|
||||||
</Form.Item>
|
>
|
||||||
<Form.Item label="Stay On Top" name="stay_on_top" valuePropName="checked">
|
<Form.Item label="Theme" name="theme">
|
||||||
<Switch />
|
<Radio.Group>
|
||||||
</Form.Item>
|
<Radio value="Light">Light</Radio>
|
||||||
<Form.Item label={<GlobalShortcut />} name="global_shortcut">
|
<Radio value="Dark">Dark</Radio>
|
||||||
<Input placeholder="CmdOrCtrl+Shift+O" {...DISABLE_AUTO_COMPLETE} />
|
</Radio.Group>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
{platformInfo === 'darwin' && (
|
<Form.Item label="Stay On Top" name="stay_on_top" valuePropName="checked">
|
||||||
<Form.Item label="Titlebar" name="titlebar" valuePropName="checked">
|
|
||||||
<Switch />
|
<Switch />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
)}
|
<Form.Item label={<GlobalShortcut />} name="global_shortcut">
|
||||||
<Form.Item label={<OriginLabel url={chatConf?.default_origin} />} name="origin">
|
<Input placeholder="CmdOrCtrl+Shift+O" {...DISABLE_AUTO_COMPLETE} />
|
||||||
<Input placeholder="https://chat.openai.com" {...DISABLE_AUTO_COMPLETE} />
|
</Form.Item>
|
||||||
</Form.Item>
|
{platformInfo === 'darwin' && (
|
||||||
<Form.Item label="User Agent (Window)" name="ua_window">
|
<Form.Item label="Titlebar" name="titlebar" valuePropName="checked">
|
||||||
<Input.TextArea autoSize={{ minRows: 4, maxRows: 4 }} {...DISABLE_AUTO_COMPLETE} placeholder="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36" />
|
<Switch />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item label="User Agent (SystemTray)" name="ua_tray">
|
)}
|
||||||
<Input.TextArea autoSize={{ minRows: 4, maxRows: 4 }} {...DISABLE_AUTO_COMPLETE} placeholder="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36" />
|
<Form.Item label={<OriginLabel url={chatConf?.default_origin} />} name="origin">
|
||||||
</Form.Item>
|
<Input placeholder="https://chat.openai.com" {...DISABLE_AUTO_COMPLETE} />
|
||||||
<Form.Item>
|
</Form.Item>
|
||||||
<Space size={20}>
|
<Form.Item label="User Agent (Window)" name="ua_window">
|
||||||
<Button onClick={onCancel}>Cancel</Button>
|
<Input.TextArea autoSize={{ minRows: 4, maxRows: 4 }} {...DISABLE_AUTO_COMPLETE} placeholder="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36" />
|
||||||
<Button type="primary" htmlType="submit">
|
</Form.Item>
|
||||||
Submit
|
<Form.Item label="User Agent (SystemTray)" name="ua_tray">
|
||||||
</Button>
|
<Input.TextArea autoSize={{ minRows: 4, maxRows: 4 }} {...DISABLE_AUTO_COMPLETE} placeholder="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36" />
|
||||||
</Space>
|
</Form.Item>
|
||||||
</Form.Item>
|
<Form.Item>
|
||||||
</Form>
|
<Space size={20}>
|
||||||
|
<Button onClick={onCancel}>Cancel</Button>
|
||||||
|
<Button type="primary" htmlType="submit">
|
||||||
|
Submit
|
||||||
|
</Button>
|
||||||
|
</Space>
|
||||||
|
</Form.Item>
|
||||||
|
</Form>
|
||||||
|
</>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user