From 933c74804c03dffde2fab3de63cbc960918602be Mon Sep 17 00:00:00 2001 From: kkzzhizhou <806508401@qq.com> Date: Sun, 28 Nov 2021 23:55:21 +0800 Subject: [PATCH] fix --- src/i18n.tsx | 36 +++++++++++++++++------------------- src/i18n/zh-cn.json | 8 +++++++- src/main.ts | 28 ++++++++++++++-------------- src/settings.ts | 44 ++++++++++++++++++++++---------------------- src/view.tsx | 8 ++++---- src/view/App.tsx | 15 +++++++-------- 6 files changed, 71 insertions(+), 68 deletions(-) diff --git a/src/i18n.tsx b/src/i18n.tsx index 4abc913..fa2b4de 100644 --- a/src/i18n.tsx +++ b/src/i18n.tsx @@ -2,26 +2,24 @@ import i18n from "i18next"; import enUsTrans from "./i18n/en-us.json"; import zhCnTrans from "./i18n/zh-cn.json"; import { initReactI18next } from 'react-i18next'; - -const lang = window.localStorage.getItem('language'); -// console.log(lang) -i18n.use(initReactI18next) -.init({ - //资源文件 - resources: { - en: { - translation: enUsTrans, +const lang = window.localStorage.getItem('language'); + +i18n.use(initReactI18next) + .init({ + resources: { + en: { + translation: enUsTrans, + }, + zh: { + translation: zhCnTrans, + }, }, - zh: { - translation: zhCnTrans, + fallbackLng: lang, + debug: false, + interpolation: { + escapeValue: false, }, - }, - fallbackLng: lang, - debug: false, - interpolation: { - escapeValue: false, - }, -}) - + }) + export default i18n; \ No newline at end of file diff --git a/src/i18n/zh-cn.json b/src/i18n/zh-cn.json index 684d63d..0a8cf93 100644 --- a/src/i18n/zh-cn.json +++ b/src/i18n/zh-cn.json @@ -11,5 +11,11 @@ "submit": "添加", "No Dailies Present": "目前每日任务为空", "No habits present.": "目前习惯为空", - "No Rewards present.": "目前奖励为空" + "No Rewards present.": "目前奖励为空", + "There was an error running the cron. Please try again later.": "运行定时失败出错,请稍后再试。", + "Login Failed, Please check credentials and try again!": "登录失败, 请检查凭据后再次尝试", + "API Error: Please check credentials": "API错误,请检查凭据", + "Resyncing, please try again": "重新同步失败,请稍后再试", + "Add!": "已添加", + "Loading....": "加载中...." } \ No newline at end of file diff --git a/src/main.ts b/src/main.ts index 7c0d817..a68a6f1 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,6 +1,6 @@ import { Plugin } from "obsidian"; import { HabiticaSyncSettingsTab } from "./settings"; -import { HabiticaSyncView, VIEW_TYPE} from "./view" +import { HabiticaSyncView, VIEW_TYPE } from "./view" interface HabiticaSyncSettings { userID: string @@ -15,26 +15,25 @@ export default class HabiticaSync extends Plugin { view: HabiticaSyncView; async onload() { - // console.log("load plugin: habitica-sync") await this.loadSettings(); this.addSettingTab(new HabiticaSyncSettingsTab(this.app, this)); this.registerView( VIEW_TYPE, (leaf) => (new HabiticaSyncView(leaf, this)) - ); + ); this.addRibbonIcon("popup-open", "Open Habitica Pane", () => { //activate view this.activateView(); }); this.addCommand({ id: "habitica-view-open", name: "Open Pane", - hotkeys: [{ modifiers: ["Mod", "Shift"], key: "h"}], + hotkeys: [{ modifiers: ["Mod", "Shift"], key: "h" }], callback: () => { this.activateView(); } }); this.activateView(); - + } async loadSettings() { this.settings = Object.assign(DEFAULT_SETTINGS, await this.loadData()) @@ -44,23 +43,24 @@ export default class HabiticaSync extends Plugin { } async onunload() { - // await this.view.onClose(); - + if (this.view) { + await this.view.onClose(); + } this.app.workspace .getLeavesOfType(VIEW_TYPE) .forEach((leaf) => leaf.detach()); } async activateView() { this.app.workspace.detachLeavesOfType(VIEW_TYPE); - + await this.app.workspace.getRightLeaf(false).setViewState({ - type: VIEW_TYPE, - active: true, + type: VIEW_TYPE, + active: true, }); - + this.app.workspace.revealLeaf( - this.app.workspace.getLeavesOfType(VIEW_TYPE)[0] + this.app.workspace.getLeavesOfType(VIEW_TYPE)[0] ); - } - + } + } diff --git a/src/settings.ts b/src/settings.ts index bd298e5..6e95124 100644 --- a/src/settings.ts +++ b/src/settings.ts @@ -14,29 +14,29 @@ export class HabiticaSyncSettingsTab extends PluginSettingTab { containerEl.empty(); new Setting(containerEl) - .setName("Habitica User ID") - .setDesc("Can be found in Settings > API") - .addText((text) => - text - .setPlaceholder("User ID") - .setValue(this.plugin.settings.userID) - .onChange(async (value) => { - this.plugin.settings.userID = value; - await this.plugin.saveSettings(); - }) - ); + .setName("Habitica User ID") + .setDesc("Can be found in Settings > API") + .addText((text) => + text + .setPlaceholder("User ID") + .setValue(this.plugin.settings.userID) + .onChange(async (value) => { + this.plugin.settings.userID = value; + await this.plugin.saveSettings(); + }) + ); new Setting(containerEl) - .setName("Habitica API Token") - .setDesc("Can be found in Settings > API") - .addText((text) => - text - .setPlaceholder("API Token") - .setValue(this.plugin.settings.apiToken) - .onChange(async (value) => { - this.plugin.settings.apiToken = value; - await this.plugin.saveSettings(); - }) - ); + .setName("Habitica API Token") + .setDesc("Can be found in Settings > API") + .addText((text) => + text + .setPlaceholder("API Token") + .setValue(this.plugin.settings.apiToken) + .onChange(async (value) => { + this.plugin.settings.apiToken = value; + await this.plugin.saveSettings(); + }) + ); } } \ No newline at end of file diff --git a/src/view.tsx b/src/view.tsx index be66720..3290dfa 100644 --- a/src/view.tsx +++ b/src/view.tsx @@ -1,4 +1,4 @@ -import { ItemView,WorkspaceLeaf } from "obsidian"; +import { ItemView, WorkspaceLeaf } from "obsidian"; import * as React from "react"; import * as ReactDOM from "react-dom"; import App from "./view/App" @@ -27,11 +27,11 @@ export class HabiticaSyncView extends ItemView { async onOpen() { ReactDOM.render( - , - this.containerEl.children[1] + , + this.containerEl.children[1] ) } - async onClose(){ + async onClose() { ReactDOM.unmountComponentAtNode(this.containerEl.children[1]); } } \ No newline at end of file diff --git a/src/view/App.tsx b/src/view/App.tsx index abb350d..05ba310 100644 --- a/src/view/App.tsx +++ b/src/view/App.tsx @@ -4,7 +4,6 @@ import { getStats, scoreTask, makeCronReq, costReward, addTask, deleteTask, upda import Statsview from "./Components/Statsview" import Taskview from "./Components/Taskview" import "../i18n" -import { exit } from "process"; class App extends React.Component { private _username = ""; @@ -167,7 +166,7 @@ class App extends React.Component { } } - async sendUpdateTask(id: string, type: string,message: string, title: string, notes: string) { + async sendUpdateTask(id: string, type: string, message: string, title: string, notes: string) { try { let response = await updateTask(this.username, this.credentials, id, type, title, notes); let result = await response.json(); @@ -218,13 +217,13 @@ class App extends React.Component { this.state.tasks.dailys.forEach((element: any) => { if (element.id == event.target.id) { if (element.id == event.target.id) { - if ( event.target.attributes.title.value == 'submit' ) { - const task_title = event.target.attributes['data-title'].value ? event.target.attributes['data-title'].value:element.text - const task_notes = event.target.attributes['data-notes'].value ? event.target.attributes['data-notes'].value:element.notes - this.sendUpdateTask(event.target.id,'daily',"Update!",task_title,task_notes) + if (event.target.attributes.title.value == 'submit') { + const task_title = event.target.attributes['data-title'].value ? event.target.attributes['data-title'].value : element.text + const task_notes = event.target.attributes['data-notes'].value ? event.target.attributes['data-notes'].value : element.notes + this.sendUpdateTask(event.target.id, 'daily', "Update!", task_title, task_notes) } else if (event.target.attributes.title.value == 'delete') { this.sendDeleteTask(event.target.id, "Deleted!") - } else if ( !element.completed) { + } else if (!element.completed) { this.sendScore(event.target.id, "up", "Checked!") } else { this.sendScore(event.target.id, "down", "Un-Checked!") @@ -274,7 +273,7 @@ class App extends React.Component { if (event.target.innerText == 'clear') { this.sendDeleteTask(event.target.id, "Deleted!") } else if (event.target.innerText == 'create') { - this.sendUpdateTask(event.target.id,'reward',"Edit!","1","1") + this.sendUpdateTask(event.target.id, 'reward', "Edit!", "1", "1") } else { this.sendReward(target_id, "down", "Cost!") }