mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-06-25 08:56:10 +00:00
* init localization * Update defaul to en * Fix merge issue and import path. * Set default to en * Change jsx to tsx * Update the password max length string. * Remove languageContext as using the recoil instead. * Add localization to component endpoints pages * Revert default to en after testing. * Update LoginForm.tsx * Fix translation. * Make lint happy * Merge (#1) * Create deploy.yml * Add localization support for endpoint pages components (#667) * init localization * Update defaul to en * Fix merge issue and import path. * Set default to en * Change jsx to tsx * Update the password max length string. * Remove languageContext as using the recoil instead. * Add localization to component endpoints pages * Revert default to en after testing. * Update LoginForm.tsx * Fix translation. * Make lint happy * Add a restart to melisearch in docker-compose.yml (#684) * Oauth fixes for Cognito (#686) * Add a restart to melisearch in docker-compose.yml * Oauth fixes for Cognito * Use the username or email for full name from oath if not provided --------- Co-authored-by: Donavan <snark@hey.com> * Italian localization support for endpoint (#687) --------- Co-authored-by: Danny Avila <110412045+danny-avila@users.noreply.github.com> Co-authored-by: Donavan Stanley <donavan.stanley@gmail.com> Co-authored-by: Donavan <snark@hey.com> Co-authored-by: Marco Beretta <81851188+Berry-13@users.noreply.github.com> * Translate Nav pages * Fix npm test --------- Co-authored-by: Danny Avila <110412045+danny-avila@users.noreply.github.com> Co-authored-by: Donavan Stanley <donavan.stanley@gmail.com> Co-authored-by: Donavan <snark@hey.com> Co-authored-by: Marco Beretta <81851188+Berry-13@users.noreply.github.com>
88 lines
2.8 KiB
JavaScript
88 lines
2.8 KiB
JavaScript
import exportFromJSON from 'export-from-json';
|
|
import { useEffect, useState } from 'react';
|
|
import { useRecoilValue } from 'recoil';
|
|
import { Dialog, DialogButton, DialogTemplate } from '~/components';
|
|
import SaveAsPresetDialog from './SaveAsPresetDialog';
|
|
import cleanupPreset from '~/utils/cleanupPreset';
|
|
import { alternateName } from '~/utils';
|
|
import Settings from './Settings';
|
|
|
|
import store from '~/store';
|
|
import { localize } from '~/localization/Translation';
|
|
|
|
// A preset dialog to show readonly preset values.
|
|
const EndpointOptionsDialog = ({ open, onOpenChange, preset: _preset, title }) => {
|
|
const [preset, setPreset] = useState(_preset);
|
|
const [saveAsDialogShow, setSaveAsDialogShow] = useState(false);
|
|
const endpointsConfig = useRecoilValue(store.endpointsConfig);
|
|
const endpointName = alternateName[preset?.endpoint] ?? 'Endpoint';
|
|
const lang = useRecoilValue(store.lang);
|
|
|
|
const setOption = (param) => (newValue) => {
|
|
let update = {};
|
|
update[param] = newValue;
|
|
setPreset((prevState) => ({
|
|
...prevState,
|
|
...update,
|
|
}));
|
|
};
|
|
|
|
const saveAsPreset = () => {
|
|
setSaveAsDialogShow(true);
|
|
};
|
|
|
|
const exportPreset = () => {
|
|
exportFromJSON({
|
|
data: cleanupPreset({ preset, endpointsConfig }),
|
|
fileName: `${preset?.title}.json`,
|
|
exportType: exportFromJSON.types.json,
|
|
});
|
|
};
|
|
|
|
useEffect(() => {
|
|
setPreset(_preset);
|
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
}, [open]);
|
|
|
|
return (
|
|
<>
|
|
<Dialog open={open} onOpenChange={onOpenChange}>
|
|
<DialogTemplate
|
|
title={`${title || localize(lang, 'com_endpoint_view_options')} - ${endpointName}`}
|
|
className="max-w-full sm:max-w-4xl"
|
|
main={
|
|
<div className="flex w-full flex-col items-center gap-2">
|
|
<div className="w-full p-0">
|
|
<Settings preset={preset} readonly={true} setOption={setOption} />
|
|
</div>
|
|
</div>
|
|
}
|
|
buttons={
|
|
<>
|
|
<DialogButton
|
|
onClick={saveAsPreset}
|
|
className="dark:hover:gray-400 border-gray-700 bg-green-600 text-white hover:bg-green-700 dark:hover:bg-green-800"
|
|
>
|
|
{localize(lang, 'com_endpoint_save_as_preset')}
|
|
</DialogButton>
|
|
</>
|
|
}
|
|
leftButtons={
|
|
<>
|
|
<DialogButton onClick={exportPreset} className="dark:hover:gray-400 border-gray-700">
|
|
{localize(lang, 'com_endpoint_export')}
|
|
</DialogButton>
|
|
</>
|
|
}
|
|
/>
|
|
</Dialog>
|
|
<SaveAsPresetDialog
|
|
open={saveAsDialogShow}
|
|
onOpenChange={setSaveAsDialogShow}
|
|
preset={preset}
|
|
/>
|
|
</>
|
|
);
|
|
};
|
|
|
|
export default EndpointOptionsDialog;
|