diff --git a/app/.eslintrc.js b/app/.eslintrc.cjs
similarity index 65%
rename from app/.eslintrc.js
rename to app/.eslintrc.cjs
index 8f715012..dc081e08 100644
--- a/app/.eslintrc.js
+++ b/app/.eslintrc.cjs
@@ -3,18 +3,22 @@ module.exports = {
env: {
node: true
},
- 'extends': [
+ parser: "vue-eslint-parser",
+ extends: [
'plugin:vue/vue3-essential',
'eslint:recommended',
- '@vue/typescript/recommended'
+ '@vue/typescript/recommended',
+ '@vue/eslint-config-typescript'
],
parserOptions: {
- ecmaVersion: 2020
+ ecmaVersion: 2020,
+ project: ['./tsconfig.json']
},
rules: {
'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'vue/no-deprecated-slot-attribute': 'off',
'@typescript-eslint/no-explicit-any': 'off',
+ '@typescript-eslint/ban-ts-comment': 'off',
}
}
diff --git a/app/package.json b/app/package.json
index 718c96fe..cd7f62f2 100644
--- a/app/package.json
+++ b/app/package.json
@@ -8,9 +8,9 @@
"dev": "vite --host 0.0.0.0",
"build": "vite build",
"preview": "vite preview",
- "test:e2e": "cypress run",
- "test:unit": "vitest",
- "lint": "eslint"
+ "test": "cypress run",
+ "lint": "eslint src",
+ "lint:fix": "eslint --fix"
},
"dependencies": {
"@capacitor/android": "5.5.1",
@@ -43,7 +43,6 @@
"jsdom": "^22.1.0",
"typescript": "^5.1.6",
"vite": "^4.5.1",
- "vitest": "^0.32.2",
"vue-tsc": "^1.0.24"
},
"description": "A french mobile and offline dictionary."
diff --git a/app/src/Outlet.vue b/app/src/AppOutlet.vue
similarity index 83%
rename from app/src/Outlet.vue
rename to app/src/AppOutlet.vue
index 505f9902..b7c94b9f 100644
--- a/app/src/Outlet.vue
+++ b/app/src/AppOutlet.vue
@@ -6,5 +6,5 @@
diff --git a/app/src/Root.vue b/app/src/AppRoot.vue
similarity index 100%
rename from app/src/Root.vue
rename to app/src/AppRoot.vue
diff --git a/app/src/components/FicheModal.vue b/app/src/components/FicheModal.vue
index aa98c54a..d4cb6fea 100644
--- a/app/src/components/FicheModal.vue
+++ b/app/src/components/FicheModal.vue
@@ -57,7 +57,7 @@ import {
{{ description }}
- {{ tag }}
+ {{ tag }}
@@ -68,12 +68,13 @@ import {
import {useIonRouter} from "@ionic/vue";
import {defineComponent} from "vue";
import {Share} from "@capacitor/share";
+import {navigateBackFunction} from "@/functions/types/utils";
export default defineComponent({
props: ['nom', 'description', 'contenu', 'tags', 'credits', 'slug'],
data() {
return {
- navigateBack: () => "" as Function
+ navigateBack: () => "" as navigateBackFunction
}
},
mounted() {
diff --git a/app/src/components/WordModal.vue b/app/src/components/WordModal.vue
index 9e687c67..ee25cf65 100644
--- a/app/src/components/WordModal.vue
+++ b/app/src/components/WordModal.vue
@@ -78,7 +78,7 @@ import WordModal from "@/components/WordModal.vue";
{{ document.image.credits }}
-
+
{{ def.genre[0] }}, {{ def.genre[1] }}
{{ def.genre }}, {{ def.classe }}
@@ -87,10 +87,10 @@ import WordModal from "@/components/WordModal.vue";
@@ -105,7 +105,7 @@ import WordModal from "@/components/WordModal.vue";
- -
+
-
{{ syn }}
@@ -122,7 +122,7 @@ import WordModal from "@/components/WordModal.vue";
- -
+
-
{{ ant }}
@@ -150,13 +150,13 @@ import WordModal from "@/components/WordModal.vue";
- {{ mode }}
+ {{ mode }}
- {{ temps }}
+ {{ temps }}
-
+
{{ sujet }}
@@ -182,8 +182,9 @@ import {getWordDocument} from "@/functions/dictionnary";
import {isWordStarred, starWord} from "@/functions/favorites";
import {Share} from "@capacitor/share";
import {RemedeConjugateDocument, RemedeWordDocument} from "@/functions/types/remede";
-import {useIonRouter, UseIonRouterResult} from "@ionic/vue";
+import {useIonRouter} from "@ionic/vue";
import {defineComponent} from "vue";
+import {navigateBackFunction} from "@/functions/types/utils";
export default defineComponent({
props: ['motRemede'],
@@ -213,7 +214,7 @@ export default defineComponent({
} as RemedeWordDocument,
notFound: false,
stared: false,
- navigateBack: () => "" as Function
+ navigateBack: () => "" as navigateBackFunction
}
},
mounted() {
diff --git a/app/src/functions/database.ts b/app/src/functions/database.ts
index 6851189f..73301a96 100644
--- a/app/src/functions/database.ts
+++ b/app/src/functions/database.ts
@@ -5,7 +5,7 @@ import {toastController} from "@ionic/vue";
async function openDatabase() {
try {
const SQL = await initSqlJS({
- locateFile: file => `/sql-wasm.wasm`
+ locateFile: () => `/sql-wasm.wasm`
})
const raw = await getRawDictionary()
return new SQL.Database(raw)
diff --git a/app/src/functions/favorites.ts b/app/src/functions/favorites.ts
index db96573c..589c8576 100644
--- a/app/src/functions/favorites.ts
+++ b/app/src/functions/favorites.ts
@@ -1,6 +1,6 @@
function starWord(word: string) {
- let starredWords = JSON.parse(localStorage.getItem('userStars') || '[]') as Array
+ const starredWords = JSON.parse(localStorage.getItem('userStars') || '[]') as Array
if (!starredWords.includes(word)) {
starredWords.push(word)
} else {
@@ -10,7 +10,7 @@ function starWord(word: string) {
}
function isWordStarred(word: string) {
- let starredWords = JSON.parse(localStorage.getItem('userStars') || '[]') as Array
+ const starredWords = JSON.parse(localStorage.getItem('userStars') || '[]') as Array
return starredWords.includes(word)
}
diff --git a/app/src/functions/offline.ts b/app/src/functions/offline.ts
index b36fe4ba..7c7425a2 100644
--- a/app/src/functions/offline.ts
+++ b/app/src/functions/offline.ts
@@ -63,6 +63,15 @@ async function deleteDictionary() {
async function getRawDictionary() {
+ if (!Capacitor.isNativePlatform()) {
+ const file = await Filesystem.readFile({
+ path: 'remedeSQLite.db',
+ directory: Directory.Data
+ })
+
+ return await file.data.arrayBuffer().then(buf => new Uint8Array(buf))
+ }
+
const path = (await getOfflineDictionaryStatus()).path
const newSrc = Capacitor.convertFileSrc(`${path}`)
diff --git a/app/src/functions/types/remede.ts b/app/src/functions/types/remede.ts
index 75d82425..4555b865 100644
--- a/app/src/functions/types/remede.ts
+++ b/app/src/functions/types/remede.ts
@@ -1,3 +1,9 @@
+interface RemedeSheet {
+ nom: string
+ description: string
+ contenu: string
+ tags: string[]
+}
interface RemedeWordDefinition {
genre: string | string[]
@@ -56,5 +62,6 @@ export type {
RemedeDictionary,
RemedeDictionaryIndex,
RemedeWordDocument,
- RemedeConjugateDocument
+ RemedeConjugateDocument,
+ RemedeSheet
}
\ No newline at end of file
diff --git a/app/src/functions/types/reverso.ts b/app/src/functions/types/reverso.ts
index a0dc61e4..101dd0e8 100644
--- a/app/src/functions/types/reverso.ts
+++ b/app/src/functions/types/reverso.ts
@@ -9,8 +9,8 @@ interface ReversoCorrection {
longDescription: string
mistakeText: string
suggestions: ReversoCorrectionSuggestion[]
- startIndex: Number
- endIndex: Number
+ startIndex: number
+ endIndex: number
}
interface ExplainSegment {
diff --git a/app/src/functions/types/utils.ts b/app/src/functions/types/utils.ts
new file mode 100644
index 00000000..85883c62
--- /dev/null
+++ b/app/src/functions/types/utils.ts
@@ -0,0 +1,5 @@
+type navigateBackFunction = () => void
+
+export type {
+ navigateBackFunction
+}
diff --git a/app/src/router/index.ts b/app/src/router/index.ts
index 64fee857..8ddccbc4 100644
--- a/app/src/router/index.ts
+++ b/app/src/router/index.ts
@@ -1,6 +1,6 @@
import { createRouter, createWebHistory } from '@ionic/vue-router';
import { RouteRecordRaw } from 'vue-router';
-import Outlet from "@/Outlet.vue";
+import Outlet from "@/AppOutlet.vue";
const routes: Array = [
{
diff --git a/app/src/views/CorrectionPage.vue b/app/src/views/CorrectionPage.vue
index 8e68e87f..a73b1956 100644
--- a/app/src/views/CorrectionPage.vue
+++ b/app/src/views/CorrectionPage.vue
@@ -43,7 +43,7 @@
{{ corrected }}
-
+
{{ segment.correction.mistakeText }}
@@ -56,7 +56,7 @@
Remplacer par
- {{ suggested.text }}
+ {{ suggested.text }}
@@ -148,9 +148,9 @@ export default {
}).then(resp => resp.json()).then(response => {
this.corrections = response.corrections
this.corrected = response.text
- let originalText = this.content
+ const originalText = this.content
let lastIndex = 0
- let segmentedText = [] as ExplainSegment[]
+ const segmentedText = [] as ExplainSegment[]
for (const correction of this.corrections) {
const startIndex = correction.startIndex
const endIndex = correction.endIndex
diff --git a/app/src/views/FavoritesPage.vue b/app/src/views/FavoritesPage.vue
index 772db4a2..59177aa1 100644
--- a/app/src/views/FavoritesPage.vue
+++ b/app/src/views/FavoritesPage.vue
@@ -16,7 +16,7 @@
-
+
diff --git a/app/src/views/FichesPage.vue b/app/src/views/FichesPage.vue
index 51b009e4..ae2b817a 100644
--- a/app/src/views/FichesPage.vue
+++ b/app/src/views/FichesPage.vue
@@ -21,12 +21,12 @@
Filtres
-
+
{{ filter }}
-
+
{{ filter }}
@@ -40,13 +40,13 @@
Fonctionne seulement avec une connexion internet !
-
+
{{ sheet.nom }}
{{ sheet.description }}
- {{ tag }}
+ {{ tag }}
@@ -72,19 +72,21 @@ import {
IonBadge, IonNavLink, IonProgressBar, IonSearchbar
} from '@ionic/vue';
import FicheModal from "@/components/FicheModal.vue";
-import {add, close, filterCircleOutline} from "ionicons/icons";
+import {close, filterCircleOutline} from "ionicons/icons";