Skip to content

Commit 8aa53a7

Browse files
committed
Refactor UI components and clean up code style
Simplified Marquee and index page markup by removing redundant classes and props. Improved code style and consistency in ThreeCanvas.vue and app.vue, including formatting, event handling, and script setup. These changes enhance maintainability and readability without affecting core functionality.
1 parent 082d1c6 commit 8aa53a7

4 files changed

Lines changed: 40 additions & 42 deletions

File tree

app/app.vue

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
</UApp>
77
</template>
88

9-
<script setup></script>
10-
useHead({ htmlAttrs: { class: 'dark' } })
11-
<style></style>
9+
<script setup>
10+
useHead({ htmlAttrs: { class: 'dark', }, },)
11+
</script>
12+
13+
<style>
14+
</style>

app/components/Marquee.vue

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,6 @@
11
<template>
2-
<UMarquee
3-
pause-on-hover
4-
:overlay="false"
5-
:repeat="3"
6-
:ui="{
7-
root: 'gap-0',
8-
content: 'py-1',
9-
}"
10-
>
11-
<div class="space-y-3 px-4 py-3 border-x" v-for="item in items" :key="item">
2+
<UMarquee>
3+
<div class="space-y-3 px-4 py-3 border" v-for="item in items" :key="item">
124
<p>{{ item.title }}</p>
135
<div class="flex items-center gap-2">
146
<UAvatar :src="item.avatar" />

app/components/ThreeCanvas.vue

Lines changed: 31 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,54 @@
11
<template>
2-
<div ref="canvasContainer" class="fixed inset-0 w-full h-full -z-10 bg-neutral-950">
3-
<div class="absolute inset-0 bg-gradient-to-b from-transparent via-black/20 to-black/80 pointer-events-none"></div>
2+
<div
3+
ref="canvasContainer"
4+
class="fixed inset-0 w-full h-full -z-10 bg-neutral-950"
5+
>
6+
<div class="absolute inset-0 bg-gradient-to-b from-transparent via-black/20 to-black/80 pointer-events-none" />
47
</div>
58
</template>
69

710
<script setup lang="ts">
8-
import { ref, onMounted, onBeforeUnmount } from "vue";
9-
import { ThreeScene } from "~/utils/ThreeScene";
11+
import { ref, onMounted, onBeforeUnmount, } from 'vue'
12+
import { ThreeScene, } from '~/utils/ThreeScene'
1013
11-
const canvasContainer = ref<HTMLElement | null>(null);
12-
let threeScene: ThreeScene | null = null;
13-
let resizeObserver: ResizeObserver | null = null;
14+
const canvasContainer = ref<HTMLElement | null>(null,)
15+
let threeScene: ThreeScene | null = null
16+
let resizeObserver: ResizeObserver | null = null
1417
1518
const handleScroll = () => {
1619
if (threeScene) {
17-
threeScene.onScroll(window.scrollY, document.body.scrollHeight);
20+
threeScene.onScroll(window.scrollY, document.body.scrollHeight,)
1821
}
19-
};
22+
}
2023
21-
const handleMouseMove = (event: MouseEvent) => {
24+
const handleMouseMove = (event: MouseEvent,) => {
2225
if (threeScene) {
23-
threeScene.onMouseMove(event.clientX, event.clientY);
26+
threeScene.onMouseMove(event.clientX, event.clientY,)
2427
}
25-
};
28+
}
2629
2730
onMounted(() => {
28-
if (!canvasContainer.value) return;
31+
if (!canvasContainer.value) return
2932
30-
threeScene = new ThreeScene();
31-
threeScene.init(canvasContainer.value);
33+
threeScene = new ThreeScene()
34+
threeScene.init(canvasContainer.value,)
3235
3336
// 1. Observe Window Resize
34-
resizeObserver = new ResizeObserver((entries) => {
35-
const { width, height } = entries[0].contentRect;
36-
threeScene?.updateSize(width, height);
37-
});
38-
resizeObserver.observe(canvasContainer.value);
37+
resizeObserver = new ResizeObserver((entries,) => {
38+
const { width, height, } = entries[0].contentRect
39+
threeScene?.updateSize(width, height,)
40+
},)
41+
resizeObserver.observe(canvasContainer.value,)
3942
4043
// 2. Add Event Listeners
41-
window.addEventListener("scroll", handleScroll);
42-
window.addEventListener("mousemove", handleMouseMove);
43-
});
44+
window.addEventListener('scroll', handleScroll,)
45+
window.addEventListener('mousemove', handleMouseMove,)
46+
},)
4447
4548
onBeforeUnmount(() => {
46-
window.removeEventListener("scroll", handleScroll);
47-
window.removeEventListener("mousemove", handleMouseMove);
48-
resizeObserver?.disconnect();
49-
threeScene?.cleanup();
50-
});
49+
window.removeEventListener('scroll', handleScroll,)
50+
window.removeEventListener('mousemove', handleMouseMove,)
51+
resizeObserver?.disconnect()
52+
threeScene?.cleanup()
53+
},)
5154
</script>

app/pages/index.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<section>
44
<div class="container">
55
<div
6-
class="text-black dark:text-white aspect-2/1 border-x border-edge select-none sm:aspect-3/1 flex items-center justify-center text-black dark:text-white screen-line-before screen-line-after before:-top-px after:-bottom-px bg-black/0.75 bg-[radial-gradient(var(--pattern-foreground)_1px,transparent_0)] bg-size-[10px_10px] bg-center [--pattern-foreground:var(--color-zinc-950)]/5 dark:bg-white/0.75 dark:[--pattern-foreground:var(--color-white)]/5"
6+
class="aspect-2/1 border-x border-edge select-none sm:aspect-3/1 flex items-center justify-center text-black dark:text-white screen-line-before screen-line-after before:-top-px after:-bottom-px bg-black/0.75 bg-[radial-gradient(var(--pattern-foreground)_1px,transparent_0)] bg-size-[10px_10px] bg-center [--pattern-foreground:var(--color-zinc-950)]/5 dark:bg-white/0.75 dark:[--pattern-foreground:var(--color-white)]/5"
77
data-state="closed"
88
data-slot="context-menu-trigger"
99
style="-webkit-touch-callout: none"

0 commit comments

Comments
 (0)