mirror of
https://github.com/CorentinTh/it-tools.git
synced 2025-04-24 16:56:14 -04:00
feat: externalized tool configuration
This commit is contained in:
parent
c3adfe30ec
commit
690bd099ef
31 changed files with 387 additions and 300 deletions
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<div class="memo">
|
||||
<ToolHeader :config="memoConfig" />
|
||||
<ToolHeader :config="$toolConfig" />
|
||||
|
||||
Warning: le style/aspect est toujours en wip, so focus on content <br><br>
|
||||
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
append-icon="mdi-magnify"
|
||||
color="white"
|
||||
hide-details
|
||||
:items="toolRoutesFlat"
|
||||
:item-text="item => item.config.title"
|
||||
:items="$toolListFlat"
|
||||
:item-text="item => item.title"
|
||||
item-value="path"
|
||||
solo-inverted
|
||||
dense
|
||||
|
@ -26,12 +26,11 @@
|
|||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import {Component, mixins} from 'nuxt-property-decorator'
|
||||
import {ToolRoutesMixin} from '@/mixins/tool-routes.mixin'
|
||||
import {Component, Vue} from 'nuxt-property-decorator'
|
||||
import {ToolRouteConfig} from '~/types/ToolConfig'
|
||||
|
||||
@Component
|
||||
export default class SearchBar extends mixins(ToolRoutesMixin) {
|
||||
export default class SearchBar extends Vue {
|
||||
choose(path:string) {
|
||||
this.$router.push({path})
|
||||
}
|
||||
|
@ -39,7 +38,7 @@ export default class SearchBar extends mixins(ToolRoutesMixin) {
|
|||
filterItems(item:ToolRouteConfig, queryText:string, itemText:string) {
|
||||
const query = queryText.trim().toLowerCase()
|
||||
const nameContainsText = itemText.toLowerCase().includes(query)
|
||||
const keywordContainsText = item?.config?.keywords.join(' ').toLowerCase().includes(query) ?? false
|
||||
const keywordContainsText = item?.keywords.join(' ').toLowerCase().includes(query) ?? false
|
||||
return nameContainsText || keywordContainsText
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,16 +1,21 @@
|
|||
<script lang="ts">
|
||||
import {Component, Vue} from 'nuxt-property-decorator'
|
||||
import {Component, mixins} from 'nuxt-property-decorator'
|
||||
import ToolWrapper from '~/components/ToolWrapper.vue'
|
||||
import type {ToolConfig} from '~/types/ToolConfig'
|
||||
import {ToolConfigMixin} from '~/mixins/tool-config.mixin'
|
||||
|
||||
@Component({components: {ToolWrapper}})
|
||||
export default class Tool extends Vue {
|
||||
@Component({
|
||||
components: {ToolWrapper}
|
||||
})
|
||||
export default class Tool extends mixins(ToolConfigMixin) {
|
||||
config(): ToolConfig {
|
||||
throw new Error('You need to specify a config() method your custom Tool.')
|
||||
return {
|
||||
title: 'ADD A <tool> TAG'
|
||||
} as unknown as ToolConfig
|
||||
};
|
||||
|
||||
public head() {
|
||||
const {title, description, keywords} = this.config()
|
||||
const {title, description, keywords} = this.$toolConfig
|
||||
|
||||
const uniqueKeywordsCleaned = [...new Set([...keywords, ...title.split(/\s+/)].map(s => s.trim().toLowerCase()))]
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue