fix: revert hide ask ai button (#1539)

pull/1542/head v0.12.2
boojack 2 years ago committed by GitHub
parent 58fa00079b
commit 73b8d1dd99
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -24,6 +24,4 @@ type SystemStatus struct {
StorageServiceID int `json:"storageServiceId"` StorageServiceID int `json:"storageServiceId"`
// Local storage path // Local storage path
LocalStoragePath string `json:"localStoragePath"` LocalStoragePath string `json:"localStoragePath"`
// Local storage path
OpenAIConfig OpenAIConfig `json:"openAIConfig"`
} }

@ -56,10 +56,6 @@ func (s *Server) registerSystemRoutes(g *echo.Group) {
}, },
StorageServiceID: api.DatabaseStorage, StorageServiceID: api.DatabaseStorage,
LocalStoragePath: "", LocalStoragePath: "",
OpenAIConfig: api.OpenAIConfig{
Key: "",
Host: "",
},
} }
systemSettingList, err := s.Store.FindSystemSettingList(ctx, &api.SystemSettingFind{}) systemSettingList, err := s.Store.FindSystemSettingList(ctx, &api.SystemSettingFind{})
@ -99,13 +95,6 @@ func (s *Server) registerSystemRoutes(g *echo.Group) {
systemStatus.StorageServiceID = int(baseValue.(float64)) systemStatus.StorageServiceID = int(baseValue.(float64))
} else if systemSetting.Name == api.SystemSettingLocalStoragePathName { } else if systemSetting.Name == api.SystemSettingLocalStoragePathName {
systemStatus.LocalStoragePath = baseValue.(string) systemStatus.LocalStoragePath = baseValue.(string)
} else if systemSetting.Name == api.SystemSettingOpenAIConfigName {
openAIConfig := api.OpenAIConfig{}
err := json.Unmarshal([]byte(systemSetting.Value), &openAIConfig)
if err != nil {
return echo.NewHTTPError(http.StatusInternalServerError, "Failed to unmarshal system setting open ai config value").SetInternal(err)
}
systemStatus.OpenAIConfig = openAIConfig
} }
} }

@ -89,7 +89,7 @@ const AskAIDialog: React.FC<Props> = (props: Props) => {
</div> </div>
<div className="dialog-content-container !w-112 max-w-full"> <div className="dialog-content-container !w-112 max-w-full">
{messageList.map((message, index) => ( {messageList.map((message, index) => (
<div key={index} className="w-full flex flex-col justify-start items-start mt-4 space-y-2"> <div key={index} className="w-full flex flex-col justify-start items-start space-y-2">
{message.role === "user" ? ( {message.role === "user" ? (
<div className="w-full flex flex-row justify-end items-start pl-6"> <div className="w-full flex flex-row justify-end items-start pl-6">
<span className="word-break shadow rounded-lg rounded-tr-none px-3 py-2 opacity-80 bg-gray-100 dark:bg-zinc-700"> <span className="word-break shadow rounded-lg rounded-tr-none px-3 py-2 opacity-80 bg-gray-100 dark:bg-zinc-700">

@ -1,7 +1,7 @@
import { useEffect } from "react"; import { useEffect } from "react";
import { NavLink, useLocation } from "react-router-dom"; import { NavLink, useLocation } from "react-router-dom";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import { useGlobalStore, useLayoutStore, useUserStore } from "@/store/module"; import { useLayoutStore, useUserStore } from "@/store/module";
import { resolution } from "@/utils/layout"; import { resolution } from "@/utils/layout";
import Icon from "./Icon"; import Icon from "./Icon";
import showSettingDialog from "./SettingDialog"; import showSettingDialog from "./SettingDialog";
@ -14,10 +14,8 @@ const Header = () => {
const { t } = useTranslation(); const { t } = useTranslation();
const location = useLocation(); const location = useLocation();
const userStore = useUserStore(); const userStore = useUserStore();
const globalStore = useGlobalStore();
const layoutStore = useLayoutStore(); const layoutStore = useLayoutStore();
const showHeader = layoutStore.state.showHeader; const showHeader = layoutStore.state.showHeader;
const showAskAI = globalStore.showAskAI();
const isVisitorMode = userStore.isVisitorMode() && !userStore.state.user; const isVisitorMode = userStore.isVisitorMode() && !userStore.state.user;
useEffect(() => { useEffect(() => {
@ -109,15 +107,13 @@ const Header = () => {
</NavLink> </NavLink>
{!isVisitorMode && ( {!isVisitorMode && (
<> <>
{showAskAI && ( <button
<button id="header-ask-ai"
id="header-ask-ai" className="px-4 pr-5 py-2 rounded-lg flex flex-row items-center text-lg text-gray-800 dark:text-gray-300 hover:bg-white hover:shadow dark:hover:bg-zinc-700"
className="px-4 pr-5 py-2 rounded-lg flex flex-row items-center text-lg text-gray-800 dark:text-gray-300 hover:bg-white hover:shadow dark:hover:bg-zinc-700" onClick={() => showAskAIDialog()}
onClick={() => showAskAIDialog()} >
> <Icon.Bot className="mr-3 w-6 h-auto opacity-70" /> {t("ask-ai.title")}
<Icon.Bot className="mr-3 w-6 h-auto opacity-70" /> {t("ask-ai.title")} </button>
</button>
)}
<button <button
id="header-archived-memo" id="header-archived-memo"
className="px-4 pr-5 py-2 rounded-lg flex flex-row items-center text-lg text-gray-800 dark:text-gray-300 hover:bg-white hover:shadow dark:hover:bg-zinc-700" className="px-4 pr-5 py-2 rounded-lg flex flex-row items-center text-lg text-gray-800 dark:text-gray-300 hover:bg-white hover:shadow dark:hover:bg-zinc-700"

@ -16,7 +16,6 @@ interface State {
disablePublicMemos: boolean; disablePublicMemos: boolean;
additionalStyle: string; additionalStyle: string;
additionalScript: string; additionalScript: string;
openAIConfig: OpenAIConfig;
} }
const SystemSection = () => { const SystemSection = () => {
@ -30,13 +29,25 @@ const SystemSection = () => {
additionalStyle: systemStatus.additionalStyle, additionalStyle: systemStatus.additionalStyle,
additionalScript: systemStatus.additionalScript, additionalScript: systemStatus.additionalScript,
disablePublicMemos: systemStatus.disablePublicMemos, disablePublicMemos: systemStatus.disablePublicMemos,
openAIConfig: systemStatus.openAIConfig, });
const [openAIConfig, setOpenAIConfig] = useState<OpenAIConfig>({
key: "",
host: "",
}); });
useEffect(() => { useEffect(() => {
globalStore.fetchSystemStatus(); globalStore.fetchSystemStatus();
}, []); }, []);
useEffect(() => {
api.getSystemSetting().then(({ data: { data: systemSettings } }) => {
const openAIConfigSetting = systemSettings.find((setting) => setting.name === "openai-config");
if (openAIConfigSetting) {
setOpenAIConfig(JSON.parse(openAIConfigSetting.value));
}
});
}, []);
useEffect(() => { useEffect(() => {
setState({ setState({
...state, ...state,
@ -45,7 +56,6 @@ const SystemSection = () => {
additionalStyle: systemStatus.additionalStyle, additionalStyle: systemStatus.additionalStyle,
additionalScript: systemStatus.additionalScript, additionalScript: systemStatus.additionalScript,
disablePublicMemos: systemStatus.disablePublicMemos, disablePublicMemos: systemStatus.disablePublicMemos,
openAIConfig: systemStatus.openAIConfig,
}); });
}, [systemStatus]); }, [systemStatus]);
@ -87,12 +97,16 @@ const SystemSection = () => {
}; };
const handleOpenAIConfigKeyChanged = (value: string) => { const handleOpenAIConfigKeyChanged = (value: string) => {
setState({ setOpenAIConfig({
...state, ...openAIConfig,
openAIConfig: { key: value,
...state.openAIConfig, });
key: value, };
},
const handleOpenAIConfigHostChanged = (value: string) => {
setOpenAIConfig({
...openAIConfig,
host: value,
}); });
}; };
@ -100,9 +114,8 @@ const SystemSection = () => {
try { try {
await api.upsertSystemSetting({ await api.upsertSystemSetting({
name: "openai-config", name: "openai-config",
value: JSON.stringify(state.openAIConfig), value: JSON.stringify(openAIConfig),
}); });
globalStore.setSystemStatus({ openAIConfig: state.openAIConfig });
} catch (error) { } catch (error) {
console.error(error); console.error(error);
return; return;
@ -110,16 +123,6 @@ const SystemSection = () => {
toast.success("OpenAI Config updated"); toast.success("OpenAI Config updated");
}; };
const handleOpenAIConfigHostChanged = (value: string) => {
setState({
...state,
openAIConfig: {
...state.openAIConfig,
host: value,
},
});
};
const handleAdditionalStyleChanged = (value: string) => { const handleAdditionalStyleChanged = (value: string) => {
setState({ setState({
...state, ...state,
@ -222,7 +225,7 @@ const SystemSection = () => {
fontSize: "14px", fontSize: "14px",
}} }}
placeholder={t("setting.system-section.openai-api-key-placeholder")} placeholder={t("setting.system-section.openai-api-key-placeholder")}
value={state.openAIConfig.key} value={openAIConfig.key}
onChange={(event) => handleOpenAIConfigKeyChanged(event.target.value)} onChange={(event) => handleOpenAIConfigKeyChanged(event.target.value)}
/> />
<div className="form-label mt-2"> <div className="form-label mt-2">
@ -235,7 +238,7 @@ const SystemSection = () => {
fontSize: "14px", fontSize: "14px",
}} }}
placeholder={t("setting.system-section.openai-api-host-placeholder")} placeholder={t("setting.system-section.openai-api-host-placeholder")}
value={state.openAIConfig.host} value={openAIConfig.host}
onChange={(event) => handleOpenAIConfigHostChanged(event.target.value)} onChange={(event) => handleOpenAIConfigHostChanged(event.target.value)}
/> />
<Divider className="!mt-3 !my-4" /> <Divider className="!mt-3 !my-4" />

@ -315,7 +315,7 @@
}, },
"ask-ai": { "ask-ai": {
"placeholder": "随便问", "placeholder": "随便问",
"title": "AI", "title": "Ask AI",
"not-enabled": "您尚未设置 OpenAI API 密钥。", "not-enabled": "您尚未设置 OpenAI API 密钥。",
"go-to-settings": "前往设置" "go-to-settings": "前往设置"
}, },

@ -23,10 +23,6 @@ export const initialGlobalState = async () => {
appearance: "system", appearance: "system",
externalUrl: "", externalUrl: "",
}, },
openAIConfig: {
key: "",
host: "",
},
} as SystemStatus, } as SystemStatus,
}; };
@ -69,10 +65,6 @@ export const useGlobalStore = () => {
isDev: () => { isDev: () => {
return state.systemStatus.profile.mode !== "prod"; return state.systemStatus.profile.mode !== "prod";
}, },
showAskAI: () => {
const openAIConfig = state.systemStatus.openAIConfig;
return Boolean(openAIConfig.key && openAIConfig.host);
},
fetchSystemStatus: async () => { fetchSystemStatus: async () => {
const { data: systemStatus } = (await api.getSystemStatus()).data; const { data: systemStatus } = (await api.getSystemStatus()).data;
store.dispatch(setGlobalState({ systemStatus: systemStatus })); store.dispatch(setGlobalState({ systemStatus: systemStatus }));

@ -31,10 +31,6 @@ const globalSlice = createSlice({
appearance: "system", appearance: "system",
externalUrl: "", externalUrl: "",
}, },
openAIConfig: {
key: "",
host: "",
},
}, },
} as State, } as State,
reducers: { reducers: {

@ -30,7 +30,6 @@ interface SystemStatus {
customizedProfile: CustomizedProfile; customizedProfile: CustomizedProfile;
storageServiceId: number; storageServiceId: number;
localStoragePath: string; localStoragePath: string;
openAIConfig: OpenAIConfig;
} }
interface SystemSetting { interface SystemSetting {

Loading…
Cancel
Save