Skip to content

Commit fb6a1e4

Browse files
committed
feat(logs): adds settings logs card
1 parent a3aef45 commit fb6a1e4

File tree

7 files changed

+95
-21
lines changed

7 files changed

+95
-21
lines changed

src/components/views/settings/SettingsCache.vue

+9-12
Original file line numberDiff line numberDiff line change
@@ -75,25 +75,21 @@ const container = ref();
7575

7676
<template>
7777
<div ref="container" class="cache-container">
78-
<NFormItem
79-
class="form-row"
80-
:label="i18n('label_retention_trakt')"
81-
:show-feedback="false"
82-
label-placement="left"
83-
>
78+
<NFormItem class="form-row" :show-feedback="false" label-placement="left">
79+
<template #label>
80+
<span class="from-label">{{ i18n('label_retention_trakt') }}</span>
81+
</template>
8482
<NSelect
8583
v-model:value="traktCacheRetention"
8684
class="form-select"
8785
:to="container"
8886
:options="cacheOptions"
8987
/>
9088
</NFormItem>
91-
<NFormItem
92-
class="form-row"
93-
:label="i18n('label_retention_images')"
94-
:show-feedback="false"
95-
label-placement="left"
96-
>
89+
<NFormItem class="form-row" :show-feedback="false" label-placement="left">
90+
<template #label>
91+
<span class="from-label">{{ i18n('label_retention_images') }}</span>
92+
</template>
9793
<NSelect
9894
v-model:value="tmdbCacheRetention"
9995
class="form-select"
@@ -155,6 +151,7 @@ const container = ref();
155151
.form-row {
156152
display: flex;
157153
flex: 1 1 auto;
154+
flex-wrap: wrap;
158155
justify-content: space-between;
159156
160157
&:hover {

src/components/views/settings/SettingsComponent.vue

-1
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,6 @@ onDeactivated(() => {
116116
@include mixin.hover-background($from: var(--bg-black-50), $to: var(--bg-color-80));
117117
118118
z-index: var(--index);
119-
min-height: 20rem;
120119
121120
&:not(:last-child) {
122121
margin-bottom: 1rem;

src/components/views/settings/SettingsLinks.vue

+16-2
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ const containerRef = ref<HTMLDivElement>();
104104
<template>
105105
<div ref="containerRef" class="links-container">
106106
<!-- Header -->
107-
<NFormItem label-placement="left" :show-feedback="false">
107+
<NFormItem class="form-header-row" label-placement="left" :show-feedback="false">
108108
<template #label>
109109
<span class="form-header">{{ i18n('label_show_hide') }}</span>
110110
</template>
@@ -113,7 +113,7 @@ const containerRef = ref<HTMLDivElement>();
113113
<template #unchecked>{{ i18n('hide', 'common', 'button') }}</template>
114114
</NSwitch>
115115
</NFormItem>
116-
<NFormItem label-placement="left" :show-feedback="false">
116+
<NFormItem class="form-header-row" label-placement="left" :show-feedback="false">
117117
<template #label>
118118
<span class="form-header">{{ i18n('label_open_in_background') }}</span>
119119
</template>
@@ -275,11 +275,25 @@ const containerRef = ref<HTMLDivElement>();
275275
color: var(--white-70);
276276
font-weight: 600;
277277
font-size: 1rem;
278+
transition: color 0.3s var(--n-bezier);
279+
280+
&-row {
281+
&:hover {
282+
.form-header {
283+
color: var(--white-mute);
284+
}
285+
}
286+
287+
@media (width < 400px) {
288+
max-width: 70%;
289+
}
290+
}
278291
279292
&-switch {
280293
display: flex;
281294
flex: 1 1 auto;
282295
justify-content: flex-end;
296+
min-width: 4rem;
283297
padding: 0 0.5rem;
284298
font-size: 0.75rem;
285299
}
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,69 @@
11
<script lang="ts" setup>
2-
import { NFlex } from 'naive-ui';
2+
import { NFormItem, NSelect } from 'naive-ui';
33
4-
import { useExtensionSettingsStore } from '~/stores/settings/extension.store';
4+
import { ref } from 'vue';
55
6-
const { logLevel } = useExtensionSettingsStore();
6+
import { LogLevel, useLogStore } from '~/stores/settings/log.store';
7+
import { useI18n } from '~/utils';
8+
9+
const i18n = useI18n('settings', 'logs');
10+
11+
const { logLevel } = useLogStore();
12+
13+
const options = Object.entries(LogLevel)
14+
.filter(([_, v]) => typeof v === 'number')
15+
.map(([key, value]) => ({
16+
label: key,
17+
value,
18+
}));
19+
20+
const container = ref();
721
</script>
822

923
<template>
10-
<NFlex> This is the logs card : {{ logLevel }} </NFlex>
24+
<div ref="container" class="logs-container">
25+
<NFormItem class="form-row" :show-feedback="false" label-placement="left">
26+
<template #label>
27+
<span class="from-label">{{ i18n('label_log_level') }}</span>
28+
</template>
29+
<NSelect
30+
v-model:value="logLevel"
31+
class="form-select"
32+
:to="container"
33+
:options="options"
34+
/>
35+
</NFormItem>
36+
</div>
1137
</template>
38+
39+
<style lang="scss" scoped>
40+
.logs-container {
41+
display: flex;
42+
flex-direction: column;
43+
gap: 1.5rem;
44+
}
45+
46+
.form-select {
47+
min-width: 10rem;
48+
}
49+
50+
.from-label {
51+
color: var(--white-70);
52+
font-weight: 600;
53+
font-size: 1rem;
54+
transition: color 0.3s var(--n-bezier);
55+
}
56+
57+
.form-row {
58+
display: flex;
59+
flex: 1 1 auto;
60+
flex-wrap: wrap;
61+
justify-content: space-between;
62+
63+
&:hover {
64+
.from-label {
65+
color: var(--white-mute);
66+
}
67+
}
68+
}
69+
</style>

src/i18n/en/settings/settings-cache.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
"description": "Label for the evict history data button"
2525
},
2626
"settings__cache__evict_lists": {
27-
"message": "Evict lists data from cache (watchlist, lists and collections)",
27+
"message": "Evict lists data from cache",
2828
"description": "Label for the evict lists data button"
2929
},
3030
"settings__cache__evict_search": {
+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"settings__logs__label_log_level": {
3+
"message": "Log verbosity in the console",
4+
"description": "Label for the log verbosity in the settings."
5+
}
6+
}

src/stores/settings/log.store.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { computed, ref } from 'vue';
44
import { storage } from '~/utils/browser/browser-storage.utils';
55
import { debounce } from '~/utils/debounce.utils';
66

7-
const enum LogLevel {
7+
export enum LogLevel {
88
Error,
99
Warn,
1010
Info,

0 commit comments

Comments
 (0)