mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-16 16:30:15 +01:00
fix: fileName formatting fixes
This commit is contained in:
parent
4245b43140
commit
31cef16cc3
4 changed files with 103 additions and 5 deletions
96
client/package-lock.json
generated
96
client/package-lock.json
generated
|
|
@ -31,6 +31,7 @@
|
|||
"downloadjs": "^1.4.7",
|
||||
"esbuild": "0.17.15",
|
||||
"export-from-json": "^1.7.2",
|
||||
"filenamify": "^5.1.1",
|
||||
"html2canvas": "^1.4.1",
|
||||
"lodash": "^4.17.21",
|
||||
"lucide-react": "^0.113.0",
|
||||
|
|
@ -6451,6 +6452,33 @@
|
|||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/filename-reserved-regex": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-3.0.0.tgz",
|
||||
"integrity": "sha512-hn4cQfU6GOT/7cFHXBqeBg2TbrMBgdD0kcjLhvSQYYwm3s4B6cjvBfb7nBALJLAXqmU5xajSa7X2NnUud/VCdw==",
|
||||
"engines": {
|
||||
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/filenamify": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmjs.org/filenamify/-/filenamify-5.1.1.tgz",
|
||||
"integrity": "sha512-M45CbrJLGACfrPOkrTp3j2EcO9OBkKUYME0eiqOCa7i2poaklU0jhlIaMlr8ijLorT0uLAzrn3qXOp5684CkfA==",
|
||||
"dependencies": {
|
||||
"filename-reserved-regex": "^3.0.0",
|
||||
"strip-outer": "^2.0.0",
|
||||
"trim-repeated": "^2.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12.20"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/fill-range": {
|
||||
"version": "7.0.1",
|
||||
"license": "MIT",
|
||||
|
|
@ -12170,6 +12198,17 @@
|
|||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/strip-outer": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-2.0.0.tgz",
|
||||
"integrity": "sha512-A21Xsm1XzUkK0qK1ZrytDUvqsQWict2Cykhvi0fBQntGG5JSprESasEyV1EZ/4CiR5WB5KjzLTrP/bO37B0wPg==",
|
||||
"engines": {
|
||||
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/style-loader": {
|
||||
"version": "3.3.2",
|
||||
"dev": true,
|
||||
|
|
@ -12488,6 +12527,28 @@
|
|||
"url": "https://github.com/sponsors/wooorm"
|
||||
}
|
||||
},
|
||||
"node_modules/trim-repeated": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-2.0.0.tgz",
|
||||
"integrity": "sha512-QUHBFTJGdOwmp0tbOG505xAgOp/YliZP/6UgafFXYZ26WT1bvQmSMJUvkeVSASuJJHbqsFbynTvkd5W8RBTipg==",
|
||||
"dependencies": {
|
||||
"escape-string-regexp": "^5.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/trim-repeated/node_modules/escape-string-regexp": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
|
||||
"integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/trough": {
|
||||
"version": "2.1.0",
|
||||
"license": "MIT",
|
||||
|
|
@ -17634,6 +17695,21 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"filename-reserved-regex": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-3.0.0.tgz",
|
||||
"integrity": "sha512-hn4cQfU6GOT/7cFHXBqeBg2TbrMBgdD0kcjLhvSQYYwm3s4B6cjvBfb7nBALJLAXqmU5xajSa7X2NnUud/VCdw=="
|
||||
},
|
||||
"filenamify": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmjs.org/filenamify/-/filenamify-5.1.1.tgz",
|
||||
"integrity": "sha512-M45CbrJLGACfrPOkrTp3j2EcO9OBkKUYME0eiqOCa7i2poaklU0jhlIaMlr8ijLorT0uLAzrn3qXOp5684CkfA==",
|
||||
"requires": {
|
||||
"filename-reserved-regex": "^3.0.0",
|
||||
"strip-outer": "^2.0.0",
|
||||
"trim-repeated": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"fill-range": {
|
||||
"version": "7.0.1",
|
||||
"requires": {
|
||||
|
|
@ -20915,6 +20991,11 @@
|
|||
"version": "3.1.1",
|
||||
"dev": true
|
||||
},
|
||||
"strip-outer": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-2.0.0.tgz",
|
||||
"integrity": "sha512-A21Xsm1XzUkK0qK1ZrytDUvqsQWict2Cykhvi0fBQntGG5JSprESasEyV1EZ/4CiR5WB5KjzLTrP/bO37B0wPg=="
|
||||
},
|
||||
"style-loader": {
|
||||
"version": "3.3.2",
|
||||
"dev": true,
|
||||
|
|
@ -21105,6 +21186,21 @@
|
|||
"trim-lines": {
|
||||
"version": "3.0.1"
|
||||
},
|
||||
"trim-repeated": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-2.0.0.tgz",
|
||||
"integrity": "sha512-QUHBFTJGdOwmp0tbOG505xAgOp/YliZP/6UgafFXYZ26WT1bvQmSMJUvkeVSASuJJHbqsFbynTvkd5W8RBTipg==",
|
||||
"requires": {
|
||||
"escape-string-regexp": "^5.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"escape-string-regexp": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
|
||||
"integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"trough": {
|
||||
"version": "2.1.0"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@
|
|||
"downloadjs": "^1.4.7",
|
||||
"esbuild": "0.17.15",
|
||||
"export-from-json": "^1.7.2",
|
||||
"filenamify": "^5.1.1",
|
||||
"html2canvas": "^1.4.1",
|
||||
"lodash": "^4.17.21",
|
||||
"lucide-react": "^0.113.0",
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import React, { useEffect, useState } from 'react';
|
||||
import { useSetRecoilState, useRecoilValue } from 'recoil';
|
||||
import filenamify from 'filenamify';
|
||||
import axios from 'axios';
|
||||
import exportFromJSON from 'export-from-json';
|
||||
import DialogTemplate from '../ui/DialogTemplate';
|
||||
|
|
@ -51,9 +52,10 @@ const EditPresetDialog = ({ open, onOpenChange, preset: _preset, title }) => {
|
|||
};
|
||||
|
||||
const exportPreset = () => {
|
||||
const fileName = filenamify(preset?.title || 'preset');
|
||||
exportFromJSON({
|
||||
data: cleanupPreset({ preset, endpointsFilter }),
|
||||
fileName: `${preset?.title}.json`,
|
||||
fileName,
|
||||
exportType: exportFromJSON.types.json
|
||||
});
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import React, { useEffect, useState } from 'react';
|
||||
import { useRecoilValue, useRecoilCallback } from 'recoil';
|
||||
import filenamify from 'filenamify';
|
||||
import exportFromJSON from 'export-from-json';
|
||||
import download from 'downloadjs';
|
||||
import DialogTemplate from '~/components/ui/DialogTemplate.jsx';
|
||||
|
|
@ -40,9 +41,7 @@ export default function ExportModel({ open, onOpenChange }) {
|
|||
|
||||
useEffect(() => {
|
||||
setFileName(
|
||||
String(conversation?.title)
|
||||
.replace(/[^a-z0-9]/gi, '_')
|
||||
.toLowerCase() || 'file'
|
||||
filenamify(String(conversation?.title || 'file'))
|
||||
);
|
||||
setType('text');
|
||||
setIncludeOptions(true);
|
||||
|
|
@ -292,7 +291,7 @@ export default function ExportModel({ open, onOpenChange }) {
|
|||
<Input
|
||||
id="filename"
|
||||
value={filename}
|
||||
onChange={e => setFileName(e.target.value || '')}
|
||||
onChange={e => setFileName(filenamify(e.target.value || ''))}
|
||||
placeholder="Set the filename"
|
||||
className={cn(
|
||||
defaultTextProps,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue