Skip to content

Commit 1efd866

Browse files
committed
Change dark mode
1 parent de1873e commit 1efd866

File tree

5 files changed

+50
-4
lines changed

5 files changed

+50
-4
lines changed

src/assets/css/dark.css

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
.dark{
2+
background-color: #303030;
3+
color: white;
4+
}
5+
.dark .headerBlock .header {
6+
color: #ffffff;
7+
}
8+
.dark .headerBlock .icons-block a img {
9+
filter: invert(100%) sepia(17%) saturate(0%) hue-rotate(24deg) brightness(103%) contrast(102%);
10+
}

src/pages/Dashboard.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@
135135
</template>
136136

137137
<script lang="ts" setup>
138-
import { computed, onMounted, ref, watch } from 'vue';
138+
import { onMounted, ref, watch } from 'vue';
139139
import { useI18n } from 'vue-i18n';
140140
import GeneralSettings from '../components/GeneralSettings.vue';
141141
import WhiteList from '../components/WhiteList.vue';

src/pages/Popup.vue

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,22 @@
55
<p class="header">Web Activity Time Tracker</p>
66
</div>
77
<div class="icons-block">
8+
<img
9+
class="dark-mode-icon"
10+
height="25"
11+
src="../assets/icons/light-mode.svg"
12+
title="Disable Dark Mode"
13+
v-if="darkMode == true"
14+
@click="changeDarkMode(false)"
15+
/>
16+
<img
17+
class="dark-mode-icon"
18+
title="Enable Dark Mode"
19+
height="25"
20+
src="../assets/icons/dark-mode.svg"
21+
v-if="darkMode == false"
22+
@click="changeDarkMode(true)"
23+
/>
824
<a @click="openPage(SettingsTab.Dashboard)"
925
>{{ t('dashboard.message') }}<img height="22" src="../assets/icons/dashboard.svg"
1026
/></a>
@@ -79,25 +95,37 @@ import ByDays from '../components/ByDays.vue';
7995
import Review from '../components/Review.vue';
8096
import { openPage } from '../utils/open-page';
8197
import { SettingsTab, TypeOfList } from '../utils/enums';
98+
import { injecStorage } from '../storage/inject-storage';
99+
import { DARK_MODE_DEFAULT, StorageParams } from '../storage/storage-params';
100+
import { applyDarkMode } from '../utils/dark-mode';
82101
83102
const { t } = useI18n();
103+
const settingsStorage = injecStorage();
84104
85105
const activeTab = ref<TypeOfList>();
106+
const darkMode = ref<boolean>();
86107
87-
onMounted(() => {
108+
onMounted(async () => {
88109
activeTab.value = TypeOfList.Today;
110+
darkMode.value = await settingsStorage.getValue(StorageParams.DARK_MODE, DARK_MODE_DEFAULT);
111+
if (darkMode.value) applyDarkMode(darkMode.value);
89112
});
90113
91114
function selectTab(type: TypeOfList) {
92115
activeTab.value = type;
93116
}
117+
118+
async function changeDarkMode(value: boolean) {
119+
await settingsStorage.saveValue(StorageParams.DARK_MODE, value);
120+
darkMode.value = value;
121+
applyDarkMode(value);
122+
}
94123
</script>
95124

96125
<style scoped>
97126
.headerBlock {
98127
height: 52px;
99128
}
100-
101129
.headerBlock .header {
102130
font-size: 16px;
103131
padding: 0 10px;
@@ -133,4 +161,8 @@ function selectTab(type: TypeOfList) {
133161
vertical-align: middle;
134162
padding-left: 5px !important;
135163
}
164+
.headerBlock .icons-block .dark-mode-icon {
165+
vertical-align: middle;
166+
margin-right: 10px;
167+
}
136168
</style>

src/popup.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<!doctype html>
1+
<!DOCTYPE html>
22
<html lang="en">
33
<head>
44
<meta charset="UTF-8" />
@@ -11,6 +11,7 @@
1111
<script type="module" src="./popup.ts"></script>
1212
</body>
1313

14+
<link rel="stylesheet" href="assets/css/dark.css" />
1415
<link rel="stylesheet" href="assets/css/main.css" />
1516
<link rel="stylesheet" href="assets/css/general.css" />
1617
</html>

src/utils/dark-mode.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export function applyDarkMode(value: boolean): void {
2+
value ? document.body.classList.add('dark') : document.body.classList.remove('dark');
3+
}

0 commit comments

Comments
 (0)