Skip to content

Commit

Permalink
修复
Browse files Browse the repository at this point in the history
1、客户端导出文件乱码;
2、导入时检查是否存在重复的面具。
  • Loading branch information
htmambo committed Jan 26, 2024
1 parent 981a362 commit eed402a
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 16 deletions.
21 changes: 21 additions & 0 deletions app/store/mask.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,27 @@ export const useMaskStore = createPersistStore(
(set, get) => ({
create(mask?: Partial<Mask>) {
const masks = get().masks;
// 检查要导入的项目是否重复
for (let existingMask of Object.values(masks)) {
if (existingMask.name === mask?.name) {
if (
JSON.stringify(existingMask.context) ===
JSON.stringify(mask?.context)
) {
console.log(
"A mask with the same name and context already exists.",
);
return existingMask;
} else {
// 只有name重复,给name加上今天的日期和时间
let now = new Date();
let year = String(now.getFullYear()).slice(-2); // 获取年份的最后两位
mask.name = `${mask.name}@${year}-${
now.getMonth() + 1
}-${now.getDate()}@${now.getHours()}:${now.getMinutes()}`;
}
}
}
const id = nanoid();
masks[id] = {
...createEmptyMask(),
Expand Down
38 changes: 22 additions & 16 deletions app/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ export function trimTopic(topic: string) {
// Fix an issue where double quotes still show in the Indonesian language
// This will remove the specified punctuation from the end of the string
// and also trim quotes from both the start and end if they exist.
return topic.replace(/^["]+|["]+$/g, "").replace(/[",.!?]*$/, "");
return topic
.replace(/^["]+|["]+$/g, "")
.replace(/[",.!?]*$/, "");
}

export async function copyToClipboard(text: string) {
Expand Down Expand Up @@ -40,8 +42,8 @@ export async function downloadAs(text: string, filename: string) {
defaultPath: `${filename}`,
filters: [
{
name: `${filename.split('.').pop()} files`,
extensions: [`${filename.split('.').pop()}`],
name: `${filename.split(".").pop()} files`,
extensions: [`${filename.split(".").pop()}`],
},
{
name: "All Files",
Expand All @@ -52,10 +54,14 @@ export async function downloadAs(text: string, filename: string) {

if (result !== null) {
try {
await window.__TAURI__.fs.writeBinaryFile(
result,
new Uint8Array([...text].map((c) => c.charCodeAt(0)))
);
// await window.__TAURI__.fs.writeBinaryFile(
// result,
// new Uint8Array([...text].map((c) => c.charCodeAt(0)))
// );
// 修复客户端导出json时的乱码现象
const encoder = new TextEncoder();
const data = encoder.encode(text);
await window.__TAURI__.fs.writeBinaryFile(result, new Uint8Array(data));
showToast(Locale.Download.Success);
} catch (error) {
showToast(Locale.Download.Failed);
Expand All @@ -69,15 +75,15 @@ export async function downloadAs(text: string, filename: string) {
"href",
"data:text/plain;charset=utf-8," + encodeURIComponent(text),
);
element.setAttribute("download", filename);
element.setAttribute("download", filename);

element.style.display = "none";
document.body.appendChild(element);
element.style.display = "none";
document.body.appendChild(element);

element.click();
element.click();

document.body.removeChild(element);
}
document.body.removeChild(element);
}
}
export function readFromFile() {
return new Promise<string>((res, rej) => {
Expand Down Expand Up @@ -212,8 +218,8 @@ export function getCSSVar(varName: string) {
export function isMacOS(): boolean {
if (typeof window !== "undefined") {
let userAgent = window.navigator.userAgent.toLocaleLowerCase();
const macintosh = /iphone|ipad|ipod|macintosh/.test(userAgent)
return !!macintosh
const macintosh = /iphone|ipad|ipod|macintosh/.test(userAgent);
return !!macintosh;
}
return false
return false;
}

0 comments on commit eed402a

Please sign in to comment.