1
0

feat: eslint enforce vue/component-name-in-template-casing

This commit is contained in:
Dominik Pschenitschni 2024-06-17 17:31:37 +02:00 committed by konrad
parent 8f094c140a
commit 23707fc493
20 changed files with 64 additions and 62 deletions

View File

@ -23,7 +23,9 @@ module.exports = {
// uncategorized rules: // uncategorized rules:
'vue/component-api-style': ['error', ['script-setup']], 'vue/component-api-style': ['error', ['script-setup']],
'vue/component-name-in-template-casing': ['warn', 'PascalCase'], 'vue/component-name-in-template-casing': ['error', 'PascalCase', {
'globals': ['RouterView', 'RouterLink'],
}],
'vue/custom-event-name-casing': ['error', 'camelCase'], 'vue/custom-event-name-casing': ['error', 'camelCase'],
'vue/define-macros-order': 'error', 'vue/define-macros-order': 'error',
'vue/match-component-file-name': ['error', { 'vue/match-component-file-name': ['error', {

View File

@ -6,7 +6,7 @@
</template> </template>
<ContentLinkShare v-else-if="authLinkShare" /> <ContentLinkShare v-else-if="authLinkShare" />
<NoAuthWrapper v-else> <NoAuthWrapper v-else>
<router-view /> <RouterView />
</NoAuthWrapper> </NoAuthWrapper>
<KeyboardShortcuts v-if="keyboardShortcutsActive" /> <KeyboardShortcuts v-if="keyboardShortcutsActive" />

View File

@ -12,14 +12,14 @@
> >
<slot /> <slot />
</div> </div>
<router-link <RouterLink
v-else-if="to !== undefined" v-else-if="to !== undefined"
ref="button" ref="button"
:to="to" :to="to"
class="base-button" class="base-button"
> >
<slot /> <slot />
</router-link> </RouterLink>
<a <a
v-else-if="href !== undefined" v-else-if="href !== undefined"
ref="button" ref="button"

View File

@ -33,14 +33,14 @@
<QuickActions /> <QuickActions />
<router-view <RouterView
v-slot="{ Component }" v-slot="{ Component }"
:route="routeWithModal" :route="routeWithModal"
> >
<keep-alive :include="['project.view']"> <keep-alive :include="['project.view']">
<component :is="Component" /> <component :is="Component" />
</keep-alive> </keep-alive>
</router-view> </RouterView>
<modal <modal
:enabled="typeof currentModal !== 'undefined'" :enabled="typeof currentModal !== 'undefined'"

View File

@ -20,7 +20,7 @@
{{ currentProject?.title === '' ? $t('misc.loading') : currentProject?.title }} {{ currentProject?.title === '' ? $t('misc.loading') : currentProject?.title }}
</h1> </h1>
<div class="box has-text-left view"> <div class="box has-text-left view">
<router-view /> <RouterView />
<PoweredByLink /> <PoweredByLink />
</div> </div>
</div> </div>

View File

@ -4,7 +4,7 @@
class="menu-container" class="menu-container"
> >
<nav class="menu top-menu"> <nav class="menu top-menu">
<router-link <RouterLink
:to="{name: 'home'}" :to="{name: 'home'}"
class="logo" class="logo"
> >
@ -12,10 +12,10 @@
width="164" width="164"
height="48" height="48"
/> />
</router-link> </RouterLink>
<menu class="menu-list other-menu-items"> <menu class="menu-list other-menu-items">
<li> <li>
<router-link <RouterLink
v-shortcut="'g o'" v-shortcut="'g o'"
:to="{ name: 'home'}" :to="{ name: 'home'}"
> >
@ -23,10 +23,10 @@
<icon icon="calendar" /> <icon icon="calendar" />
</span> </span>
{{ $t('navigation.overview') }} {{ $t('navigation.overview') }}
</router-link> </RouterLink>
</li> </li>
<li> <li>
<router-link <RouterLink
v-shortcut="'g u'" v-shortcut="'g u'"
:to="{ name: 'tasks.range'}" :to="{ name: 'tasks.range'}"
> >
@ -34,10 +34,10 @@
<icon :icon="['far', 'calendar-alt']" /> <icon :icon="['far', 'calendar-alt']" />
</span> </span>
{{ $t('navigation.upcoming') }} {{ $t('navigation.upcoming') }}
</router-link> </RouterLink>
</li> </li>
<li> <li>
<router-link <RouterLink
v-shortcut="'g p'" v-shortcut="'g p'"
:to="{ name: 'projects.index'}" :to="{ name: 'projects.index'}"
> >
@ -45,10 +45,10 @@
<icon icon="layer-group" /> <icon icon="layer-group" />
</span> </span>
{{ $t('project.projects') }} {{ $t('project.projects') }}
</router-link> </RouterLink>
</li> </li>
<li> <li>
<router-link <RouterLink
v-shortcut="'g a'" v-shortcut="'g a'"
:to="{ name: 'labels.index'}" :to="{ name: 'labels.index'}"
> >
@ -56,10 +56,10 @@
<icon icon="tags" /> <icon icon="tags" />
</span> </span>
{{ $t('label.title') }} {{ $t('label.title') }}
</router-link> </RouterLink>
</li> </li>
<li> <li>
<router-link <RouterLink
v-shortcut="'g m'" v-shortcut="'g m'"
:to="{ name: 'teams.index'}" :to="{ name: 'teams.index'}"
> >
@ -67,7 +67,7 @@
<icon icon="users" /> <icon icon="users" />
</span> </span>
{{ $t('team.title') }} {{ $t('team.title') }}
</router-link> </RouterLink>
</li> </li>
</menu> </menu>
</nav> </nav>

View File

@ -4,7 +4,7 @@
aria-label="main navigation" aria-label="main navigation"
class="navbar d-print-none" class="navbar d-print-none"
> >
<router-link <RouterLink
:to="{ name: 'home' }" :to="{ name: 'home' }"
class="logo-link" class="logo-link"
> >
@ -12,7 +12,7 @@
width="164" width="164"
height="48" height="48"
/> />
</router-link> </RouterLink>
<MenuButton class="menu-button" /> <MenuButton class="menu-button" />

View File

@ -5,20 +5,20 @@
class="pagination is-centered p-4" class="pagination is-centered p-4"
role="navigation" role="navigation"
> >
<router-link <RouterLink
:disabled="currentPage === 1 || undefined" :disabled="currentPage === 1 || undefined"
:to="getRouteForPagination(currentPage - 1)" :to="getRouteForPagination(currentPage - 1)"
class="pagination-previous" class="pagination-previous"
> >
{{ $t('misc.previous') }} {{ $t('misc.previous') }}
</router-link> </RouterLink>
<router-link <RouterLink
:disabled="currentPage === totalPages || undefined" :disabled="currentPage === totalPages || undefined"
:to="getRouteForPagination(currentPage + 1)" :to="getRouteForPagination(currentPage + 1)"
class="pagination-next" class="pagination-next"
> >
{{ $t('misc.next') }} {{ $t('misc.next') }}
</router-link> </RouterLink>
<ul class="pagination-list"> <ul class="pagination-list">
<li <li
v-for="(p, i) in pages" v-for="(p, i) in pages"
@ -28,7 +28,7 @@
v-if="p.isEllipsis" v-if="p.isEllipsis"
class="pagination-ellipsis" class="pagination-ellipsis"
>&hellip;</span> >&hellip;</span>
<router-link <RouterLink
v-else v-else
class="pagination-link" class="pagination-link"
:aria-label="'Goto page ' + p.number" :aria-label="'Goto page ' + p.number"
@ -36,7 +36,7 @@
:to="getRouteForPagination(p.number)" :to="getRouteForPagination(p.number)"
> >
{{ p.number }} {{ p.number }}
</router-link> </RouterLink>
</li> </li>
</ul> </ul>
</nav> </nav>

View File

@ -178,14 +178,14 @@
:key="t.id" :key="t.id"
> >
<td v-if="activeColumns.index"> <td v-if="activeColumns.index">
<router-link :to="taskDetailRoutes[t.id]"> <RouterLink :to="taskDetailRoutes[t.id]">
<template v-if="t.identifier === ''"> <template v-if="t.identifier === ''">
#{{ t.index }} #{{ t.index }}
</template> </template>
<template v-else> <template v-else>
{{ t.identifier }} {{ t.identifier }}
</template> </template>
</router-link> </RouterLink>
</td> </td>
<td v-if="activeColumns.done"> <td v-if="activeColumns.done">
<Done <Done
@ -194,9 +194,9 @@
/> />
</td> </td>
<td v-if="activeColumns.title"> <td v-if="activeColumns.title">
<router-link :to="taskDetailRoutes[t.id]"> <RouterLink :to="taskDetailRoutes[t.id]">
{{ t.title }} {{ t.title }}
</router-link> </RouterLink>
</td> </td>
<td v-if="activeColumns.priority"> <td v-if="activeColumns.priority">
<PriorityLabel <PriorityLabel

View File

@ -60,14 +60,14 @@
</template> </template>
<template v-if="shareType === 'team'"> <template v-if="shareType === 'team'">
<td> <td>
<router-link <RouterLink
:to="{ :to="{
name: 'teams.edit', name: 'teams.edit',
params: { id: s.id }, params: { id: s.id },
}" }"
> >
{{ s.name }} {{ s.name }}
</router-link> </RouterLink>
</td> </td>
</template> </template>
<td class="type"> <td class="type">

View File

@ -125,7 +125,7 @@
class="task-done-checkbox" class="task-done-checkbox"
@update:modelValue="toggleTaskDone(t)" @update:modelValue="toggleTaskDone(t)"
/> />
<router-link <RouterLink
:to="{ name: route.name as string, params: { id: task.id } }" :to="{ name: route.name as string, params: { id: task.id } }"
:class="{ 'is-strikethrough': task.done}" :class="{ 'is-strikethrough': task.done}"
> >
@ -141,7 +141,7 @@
</span> </span>
</span> </span>
{{ task.title }} {{ task.title }}
</router-link> </RouterLink>
</div> </div>
<BaseButton <BaseButton
v-if="editEnabled" v-if="editEnabled"

View File

@ -27,7 +27,7 @@
@mousedown.stop.self="focusTaskLink" @mousedown.stop.self="focusTaskLink"
> >
<span> <span>
<router-link <RouterLink
v-if="showProject && typeof project !== 'undefined'" v-if="showProject && typeof project !== 'undefined'"
v-tooltip="$t('task.detail.belongsToProject', {project: project.title})" v-tooltip="$t('task.detail.belongsToProject', {project: project.title})"
:to="{ name: 'project.index', params: { projectId: task.projectId } }" :to="{ name: 'project.index', params: { projectId: task.projectId } }"
@ -35,7 +35,7 @@
:class="{'mr-2': task.hexColor !== ''}" :class="{'mr-2': task.hexColor !== ''}"
> >
{{ project.title }} {{ project.title }}
</router-link> </RouterLink>
<ColorBubble <ColorBubble
v-if="task.hexColor !== ''" v-if="task.hexColor !== ''"
@ -49,14 +49,14 @@
class="pr-2" class="pr-2"
/> />
<router-link <RouterLink
ref="taskLink" ref="taskLink"
:to="taskDetailRoute" :to="taskDetailRoute"
class="task-link" class="task-link"
tabindex="-1" tabindex="-1"
> >
{{ task.title }} {{ task.title }}
</router-link> </RouterLink>
</span> </span>
<Labels <Labels
@ -133,14 +133,14 @@
class="mr-1" class="mr-1"
/> />
<router-link <RouterLink
v-if="showProjectSeparately" v-if="showProjectSeparately"
v-tooltip="$t('task.detail.belongsToProject', {project: project.title})" v-tooltip="$t('task.detail.belongsToProject', {project: project.title})"
:to="{ name: 'project.index', params: { projectId: task.projectId } }" :to="{ name: 'project.index', params: { projectId: task.projectId } }"
class="task-project" class="task-project"
> >
{{ project.title }} {{ project.title }}
</router-link> </RouterLink>
<BaseButton <BaseButton
:class="{'is-favorite': task.isFavorite}" :class="{'is-favorite': task.isFavorite}"

View File

@ -15,9 +15,9 @@
dateSince: formatDateSince(deletionScheduledAt), dateSince: formatDateSince(deletionScheduledAt),
}) })
}} }}
<router-link :to="{name: 'user.settings', hash: '#deletion'}"> <RouterLink :to="{name: 'user.settings', hash: '#deletion'}">
{{ $t('user.deletion.scheduledCancel') }} {{ $t('user.deletion.scheduledCancel') }}
</router-link> </RouterLink>
</Message> </Message>
<AddTask <AddTask
class="is-max-width-desktop" class="is-max-width-desktop"

View File

@ -21,9 +21,9 @@
class="has-text-centered has-text-grey is-italic" class="has-text-centered has-text-grey is-italic"
> >
{{ $t('label.newCTA') }} {{ $t('label.newCTA') }}
<router-link :to="{name:'labels.create'}"> <RouterLink :to="{name:'labels.create'}">
{{ $t('label.create.title') }}. {{ $t('label.create.title') }}.
</router-link> </RouterLink>
</p> </p>
</div> </div>

View File

@ -3,7 +3,7 @@
<h1>{{ $t('migrate.title') }}</h1> <h1>{{ $t('migrate.title') }}</h1>
<p>{{ $t('migrate.description') }}</p> <p>{{ $t('migrate.description') }}</p>
<div class="migration-services"> <div class="migration-services">
<router-link <RouterLink
v-for="{name, id, icon} in availableMigrators" v-for="{name, id, icon} in availableMigrators"
:key="id" :key="id"
class="migration-service-link" class="migration-service-link"
@ -15,7 +15,7 @@
:src="icon" :src="icon"
> >
{{ name }} {{ name }}
</router-link> </RouterLink>
</div> </div>
</div> </div>
</template> </template>

View File

@ -31,12 +31,12 @@
> >
{{ getProjectTitle(p) }} {{ getProjectTitle(p) }}
</a> </a>
<router-link <RouterLink
v-else v-else
:to="{ name: 'project.index', params: { projectId: p.id } }" :to="{ name: 'project.index', params: { projectId: p.id } }"
> >
{{ getProjectTitle(p) }} {{ getProjectTitle(p) }}
</router-link> </RouterLink>
<span <span
v-if="p.id !== project?.id" v-if="p.id !== project?.id"
class="has-text-grey-light" class="has-text-grey-light"

View File

@ -20,11 +20,11 @@
v-for="team in teams" v-for="team in teams"
:key="team.id" :key="team.id"
> >
<router-link :to="{name: 'teams.edit', params: {id: team.id}}"> <RouterLink :to="{name: 'teams.edit', params: {id: team.id}}">
<p> <p>
{{ team.name }} {{ team.name }}
</p> </p>
</router-link> </RouterLink>
</li> </li>
</ul> </ul>
<p <p
@ -32,9 +32,9 @@
class="has-text-centered has-text-grey is-italic" class="has-text-centered has-text-grey is-italic"
> >
{{ $t('team.noTeams') }} {{ $t('team.noTeams') }}
<router-link :to="{name: 'teams.create'}"> <RouterLink :to="{name: 'teams.create'}">
{{ $t('team.create.title') }}. {{ $t('team.create.title') }}.
</router-link> </RouterLink>
</p> </p>
</div> </div>
</template> </template>

View File

@ -54,13 +54,13 @@
class="label" class="label"
for="password" for="password"
>{{ $t('user.auth.password') }}</label> >{{ $t('user.auth.password') }}</label>
<router-link <RouterLink
:to="{ name: 'user.password-reset.request' }" :to="{ name: 'user.password-reset.request' }"
class="reset-password-link" class="reset-password-link"
tabindex="6" tabindex="6"
> >
{{ $t('user.auth.forgotPassword') }} {{ $t('user.auth.forgotPassword') }}
</router-link> </RouterLink>
</div> </div>
<Password <Password
v-model="password" v-model="password"
@ -117,13 +117,13 @@
class="mt-2" class="mt-2"
> >
{{ $t('user.auth.noAccountYet') }} {{ $t('user.auth.noAccountYet') }}
<router-link <RouterLink
:to="{ name: 'user.register' }" :to="{ name: 'user.register' }"
type="secondary" type="secondary"
tabindex="5" tabindex="5"
> >
{{ $t('user.auth.createAccount') }} {{ $t('user.auth.createAccount') }}
</router-link> </RouterLink>
</p> </p>
</form> </form>

View File

@ -101,9 +101,9 @@
<p class="mt-2"> <p class="mt-2">
{{ $t('user.auth.alreadyHaveAnAccount') }} {{ $t('user.auth.alreadyHaveAnAccount') }}
<router-link :to="{ name: 'user.login' }"> <RouterLink :to="{ name: 'user.login' }">
{{ $t('user.auth.login') }} {{ $t('user.auth.login') }}
</router-link> </RouterLink>
</p> </p>
</form> </form>
</div> </div>

View File

@ -7,17 +7,17 @@
v-for="({routeName, title }, index) in navigationItems" v-for="({routeName, title }, index) in navigationItems"
:key="index" :key="index"
> >
<router-link <RouterLink
class="navigation-link" class="navigation-link"
:to="{name: routeName}" :to="{name: routeName}"
> >
{{ title }} {{ title }}
</router-link> </RouterLink>
</li> </li>
</ul> </ul>
</nav> </nav>
<section class="view"> <section class="view">
<router-view /> <RouterView />
</section> </section>
</div> </div>
</div> </div>