fix: fileName formatting fixes

This commit is contained in:
Danny Avila 2023-04-06 16:18:36 -04:00
parent 4245b43140
commit 31cef16cc3
4 changed files with 103 additions and 5 deletions

View file

@ -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"
},

View file

@ -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",

View file

@ -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
});
};

View file

@ -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,