-
+
-
+
{{ project.name }}
-
+
{{ project.description }}
@@ -203,3 +203,17 @@ function getProjectManager(manager: string) {
+
+
diff --git a/apps/shelve/app/components/setting/ThemeToggle.vue b/apps/shelve/app/components/setting/ThemeToggle.vue
index 5a392df2..21fdf34e 100644
--- a/apps/shelve/app/components/setting/ThemeToggle.vue
+++ b/apps/shelve/app/components/setting/ThemeToggle.vue
@@ -13,7 +13,7 @@ const switchTheme = () => {
colorMode.preference = colorMode.value
}
-function startViewTransition(theme) {
+const startViewTransition = (theme) => {
if (theme === colorMode.value) return
if (!document.startViewTransition) {
switchTheme()
@@ -23,7 +23,16 @@ function startViewTransition(theme) {
switchTheme()
return
}
- document.startViewTransition(switchTheme)
+
+ document.documentElement.classList.add('theme-transitioning')
+
+ const transition = document.startViewTransition(() => {
+ switchTheme()
+ })
+
+ transition.finished.then(() => {
+ document.documentElement.classList.remove('theme-transitioning')
+ })
}
@@ -46,24 +55,25 @@ function startViewTransition(theme) {
diff --git a/apps/shelve/app/pages/projects.vue b/apps/shelve/app/pages/projects.vue
index f32fe9e1..57e4cc74 100644
--- a/apps/shelve/app/pages/projects.vue
+++ b/apps/shelve/app/pages/projects.vue
@@ -9,6 +9,8 @@ const projects = useUserProjects()
const { loading, fetchProjects } = useProjects()
await fetchProjects()
+
+const active = useState('active-project')
@@ -35,19 +37,21 @@ await fetchProjects()
:key="project.id"
:to="`/project/${project.id}`"
>
-
+
-
+
{{ project.name }}
-
+
{{ project.description }}
@@ -61,3 +65,17 @@ await fetchProjects()
+
+
diff --git a/apps/shelve/nuxt.config.ts b/apps/shelve/nuxt.config.ts
index e2506dfa..c388d686 100644
--- a/apps/shelve/nuxt.config.ts
+++ b/apps/shelve/nuxt.config.ts
@@ -12,6 +12,10 @@ export default defineNuxtConfig({
compatibilityVersion: 4,
},
+ experimental: {
+ viewTransition: true,
+ },
+
ssr: false,
nitro: {