From 75201a80832e78cffb41206b0bb07e9c56cc3b04 Mon Sep 17 00:00:00 2001 From: Kavin <20838718+FireMasterK@users.noreply.github.com> Date: Fri, 27 Mar 2026 13:36:04 +0530 Subject: [PATCH] Implement more reka ui and attempt to fix review issues. --- src/App.vue | 5 +- src/app.css | 5 +- src/components/AddToGroupModal.vue | 8 +-- src/components/ChannelItem.vue | 1 - src/components/ChannelPage.vue | 6 --- src/components/ChaptersBar.vue | 8 ++- src/components/ExportHistoryModal.vue | 23 +++----- src/components/FeedPage.vue | 4 +- src/components/FooterComponent.vue | 2 +- src/components/HistoryPage.vue | 3 +- src/components/ImportHistoryModal.vue | 19 ++++++- src/components/ImportPage.vue | 12 ++--- src/components/LoginPage.vue | 7 +-- src/components/ModalComponent.vue | 46 ++++++++-------- src/components/NavBar.vue | 25 ++------- src/components/PageNotFound.vue | 2 +- src/components/PlaylistItem.vue | 6 +-- src/components/PlaylistPage.vue | 2 +- src/components/PlaylistsPage.vue | 3 +- src/components/RegisterPage.vue | 24 ++------- src/components/ShareModal.vue | 26 +++------- src/components/SubscriptionsPage.vue | 9 ++-- src/components/VideoItem.vue | 3 +- src/components/VideoThumbnail.vue | 2 +- src/components/WatchVideo.vue | 15 ++---- src/components/ui/Button.vue | 36 +++++++++++++ src/components/ui/Checkbox.vue | 75 +++++++++++++++++++++++++++ src/components/ui/ClearButton.vue | 17 ++++++ src/components/ui/PasswordToggle.vue | 21 ++++++++ src/composables/usePreferences.js | 11 ++-- 30 files changed, 256 insertions(+), 170 deletions(-) create mode 100644 src/components/ui/Button.vue create mode 100644 src/components/ui/Checkbox.vue create mode 100644 src/components/ui/ClearButton.vue create mode 100644 src/components/ui/PasswordToggle.vue diff --git a/src/App.vue b/src/App.vue index 361308cf..10c3e02b 100644 --- a/src/App.vue +++ b/src/App.vue @@ -173,6 +173,7 @@ onBeforeUnmount(() => { :root { color-scheme: only light; + scrollbar-color: #4b4f52 #d1d5db; } ::-webkit-scrollbar { @@ -195,10 +196,6 @@ onBeforeUnmount(() => { background-color: #0b0e0f; } - :root { - scrollbar-color: #4b4f52 #d1d5db; - } - .dark ::-webkit-scrollbar { background-color: #15191a; } diff --git a/src/app.css b/src/app.css index 993eb45f..90fa5777 100644 --- a/src/app.css +++ b/src/app.css @@ -4,6 +4,7 @@ --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --color-light-200: #cacaca; --color-dark-100: #3f3f46; --color-dark-300: #323232; --color-dark-400: #222222; @@ -33,7 +34,7 @@ } @utility skip-segment-icon { - font-size: 1.6em !important; - line-height: inherit !important; + font-size: 1.6em; + line-height: inherit; margin-left: 0.4em; } diff --git a/src/components/AddToGroupModal.vue b/src/components/AddToGroupModal.vue index 2dd8f66c..585c87c3 100644 --- a/src/components/AddToGroupModal.vue +++ b/src/components/AddToGroupModal.vue @@ -6,10 +6,9 @@
{{ group.groupName }} -

@@ -33,6 +32,7 @@ import { ref, onMounted } from "vue"; import ModalComponent from "./ModalComponent.vue"; import CreateGroupModal from "./CreateGroupModal.vue"; +import UiCheckbox from "./ui/Checkbox.vue"; import { getChannelGroups, createOrUpdateChannelGroup } from "@/composables/useChannelGroups.js"; const props = defineProps({ diff --git a/src/components/ChannelItem.vue b/src/components/ChannelItem.vue index b5b94394..76524f4d 100644 --- a/src/components/ChannelItem.vue +++ b/src/components/ChannelItem.vue @@ -69,7 +69,6 @@ const channelId = computed(() => props.item.url.substr(-24)); async function updateSubscribedStatus() { subscribed.value = await fetchSubscriptionStatus(channelId.value); - console.log(subscribed.value); } function subscribeHandler() { diff --git a/src/components/ChannelPage.vue b/src/components/ChannelPage.vue index aa88fc98..646a2dee 100644 --- a/src/components/ChannelPage.vue +++ b/src/components/ChannelPage.vue @@ -275,9 +275,3 @@ onUnmounted(() => { window.removeEventListener("scroll", handleScroll); }); - - diff --git a/src/components/ChaptersBar.vue b/src/components/ChaptersBar.vue index b12d006b..09ca1682 100644 --- a/src/components/ChaptersBar.vue +++ b/src/components/ChaptersBar.vue @@ -95,12 +95,10 @@ const isCurrentChapter = index => { defineEmits(["seek"]); - diff --git a/src/components/ExportHistoryModal.vue b/src/components/ExportHistoryModal.vue index 652c30b3..251b04a9 100644 --- a/src/components/ExportHistoryModal.vue +++ b/src/components/ExportHistoryModal.vue @@ -8,7 +8,7 @@
-
+ -
+ - +
- +
- +
@@ -80,6 +64,8 @@ import { useRouter } from "vue-router"; import { useI18n } from "vue-i18n"; import { isEmail } from "../utils/Misc.js"; import ConfirmModal from "./ConfirmModal.vue"; +import Button from "./ui/Button.vue"; +import PasswordToggle from "./ui/PasswordToggle.vue"; import { fetchJson, authApiUrl, getAuthToken, hashCode } from "@/composables/useApi.js"; import { setPreference } from "@/composables/usePreferences.js"; diff --git a/src/components/ShareModal.vue b/src/components/ShareModal.vue index 3925f1af..8dea1589 100644 --- a/src/components/ShareModal.vue +++ b/src/components/ShareModal.vue @@ -3,16 +3,16 @@


-
@@ -52,6 +40,8 @@ import { ref, computed, onMounted, defineAsyncComponent } from "vue"; import { useI18n } from "vue-i18n"; import ModalComponent from "./ModalComponent.vue"; +import Button from "./ui/Button.vue"; +import UiCheckbox from "./ui/Checkbox.vue"; import { getPreferenceBoolean, setPreference } from "@/composables/usePreferences.js"; const QrCode = defineAsyncComponent(() => import("./QrCode.vue")); diff --git a/src/components/SubscriptionsPage.vue b/src/components/SubscriptionsPage.vue index 36274957..69104c92 100644 --- a/src/components/SubscriptionsPage.vue +++ b/src/components/SubscriptionsPage.vue @@ -126,11 +126,9 @@ {{ subscription.name }} -

@@ -144,6 +142,7 @@ import { ref, computed, onMounted, onActivated } from "vue"; import ModalComponent from "./ModalComponent.vue"; import CreateGroupModal from "./CreateGroupModal.vue"; import ConfirmModal from "./ConfirmModal.vue"; +import UiCheckbox from "./ui/Checkbox.vue"; import { fetchJson, authApiUrl, getAuthToken, isAuthenticated } from "@/composables/useApi.js"; import { fetchSubscriptions, handleLocalSubscriptions } from "@/composables/useSubscriptions.js"; import { getChannelGroups, createOrUpdateChannelGroup, deleteChannelGroup } from "@/composables/useChannelGroups.js"; diff --git a/src/components/VideoItem.vue b/src/components/VideoItem.vue index 9b08fba3..8c2c6191 100644 --- a/src/components/VideoItem.vue +++ b/src/components/VideoItem.vue @@ -16,8 +16,7 @@

diff --git a/src/components/VideoThumbnail.vue b/src/components/VideoThumbnail.vue index 761e95df..ae79db74 100644 --- a/src/components/VideoThumbnail.vue +++ b/src/components/VideoThumbnail.vue @@ -5,7 +5,7 @@ class="aspect-video w-full rounded-md object-contain" :src="item.thumbnail" :alt="item.title" - :class="{ 'w-full object-contain': item.isShort, 'opacity-75': item.watched }" + :class="{ 'opacity-75': item.watched }" />

diff --git a/src/components/WatchVideo.vue b/src/components/WatchVideo.vue index def8c611..b8b4604b 100644 --- a/src/components/WatchVideo.vue +++ b/src/components/WatchVideo.vue @@ -138,7 +138,7 @@ class="inline-block w-auto cursor-pointer rounded-sm bg-gray-300 py-2 text-gray-600 hover:bg-gray-500 hover:text-white focus:shadow-red-400 focus:outline-2 focus:outline-red-500 max-md:hidden max-md:px-2 md:px-4 dark:bg-dark-400 dark:text-gray-400 dark:hover:bg-dark-300" @click="downloadCurrentFrame" > - {{ $t("actions.download_frame") }} + {{ $t("actions.download_frame") }}