Skip to content

Commit 4de6f84

Browse files
authored
Merge pull request #127 from sr2echa/canary
fix eslint issues
2 parents 1e41a5e + 634d759 commit 4de6f84

27 files changed

Lines changed: 175 additions & 143 deletions

app/NotFound.tsx

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,10 @@ export default function NotFound(): React.ReactElement {
5858
}}
5959
>
6060
<div className="flex items-center h-full px-4 gap-6">
61-
<div className="w-20 h-7 bg-muted-foreground/40 rounded"></div>
62-
<div className="w-16 h-7 bg-muted-foreground/40 rounded"></div>
63-
<div className="w-18 h-7 bg-muted-foreground/40 rounded"></div>
64-
<div className="w-14 h-7 bg-muted-foreground/40 rounded"></div>
61+
<div className="w-20 h-7 bg-muted-foreground/40 rounded" />
62+
<div className="w-16 h-7 bg-muted-foreground/40 rounded" />
63+
<div className="w-18 h-7 bg-muted-foreground/40 rounded" />
64+
<div className="w-14 h-7 bg-muted-foreground/40 rounded" />
6565
</div>
6666
</motion.div>
6767

@@ -79,7 +79,7 @@ export default function NotFound(): React.ReactElement {
7979
}}
8080
>
8181
<div className="h-10 border-b-2 border-muted-foreground/30 bg-muted/25 flex items-center px-4">
82-
<div className="w-20 h-5 bg-muted-foreground/40 rounded"></div>
82+
<div className="w-20 h-5 bg-muted-foreground/40 rounded" />
8383
</div>
8484
<div className="p-4 space-y-3">
8585
{[...Array(10)].map((_, i) => (
@@ -91,8 +91,8 @@ export default function NotFound(): React.ReactElement {
9191
) : (
9292
<Music className="w-5 h-5 text-muted-foreground/60" />
9393
)}
94-
<div className="w-24 h-4 bg-muted-foreground/40 rounded"></div>
95-
<div className="w-12 h-3 bg-muted-foreground/30 rounded text-xs"></div>
94+
<div className="w-24 h-4 bg-muted-foreground/40 rounded" />
95+
<div className="w-12 h-3 bg-muted-foreground/30 rounded text-xs" />
9696
</div>
9797
))}
9898
</div>
@@ -112,7 +112,7 @@ export default function NotFound(): React.ReactElement {
112112
}}
113113
>
114114
<div className="h-10 border-b-2 border-muted-foreground/30 bg-muted/25 flex items-center px-4">
115-
<div className="w-16 h-5 bg-muted-foreground/40 rounded"></div>
115+
<div className="w-16 h-5 bg-muted-foreground/40 rounded" />
116116
</div>
117117
<div className="p-6">
118118
<div className="w-full h-48 border border-border/30 rounded-lg bg-muted/10 flex items-center justify-center">
@@ -181,10 +181,10 @@ export default function NotFound(): React.ReactElement {
181181
>
182182
<Video className="w-5 h-5 mr-3 text-muted-foreground/60" />
183183
<div className="flex gap-2">
184-
<div className="w-20 h-6 bg-blue-500/50 rounded"></div>
185-
<div className="w-16 h-6 bg-blue-500/50 rounded"></div>
186-
<div className="w-24 h-6 bg-blue-500/50 rounded"></div>
187-
<div className="w-12 h-6 bg-blue-500/50 rounded"></div>
184+
<div className="w-20 h-6 bg-blue-500/50 rounded" />
185+
<div className="w-16 h-6 bg-blue-500/50 rounded" />
186+
<div className="w-24 h-6 bg-blue-500/50 rounded" />
187+
<div className="w-12 h-6 bg-blue-500/50 rounded" />
188188
</div>
189189
</motion.div>
190190

@@ -203,9 +203,9 @@ export default function NotFound(): React.ReactElement {
203203
>
204204
<Music className="w-5 h-5 mr-3 text-muted-foreground/60" />
205205
<div className="flex gap-2">
206-
<div className="w-32 h-6 bg-green-500/50 rounded"></div>
207-
<div className="w-20 h-6 bg-green-500/50 rounded"></div>
208-
<div className="w-16 h-6 bg-green-500/50 rounded"></div>
206+
<div className="w-32 h-6 bg-green-500/50 rounded" />
207+
<div className="w-20 h-6 bg-green-500/50 rounded" />
208+
<div className="w-16 h-6 bg-green-500/50 rounded" />
209209
</div>
210210
</motion.div>
211211

@@ -224,10 +224,10 @@ export default function NotFound(): React.ReactElement {
224224
>
225225
<Scissors className="w-5 h-5 mr-3 text-muted-foreground/60" />
226226
<div className="flex gap-2">
227-
<div className="w-12 h-6 bg-purple-500/50 rounded"></div>
228-
<div className="w-8 h-6 bg-purple-500/50 rounded"></div>
229-
<div className="w-14 h-6 bg-purple-500/50 rounded"></div>
230-
<div className="w-10 h-6 bg-purple-500/50 rounded"></div>
227+
<div className="w-12 h-6 bg-purple-500/50 rounded" />
228+
<div className="w-8 h-6 bg-purple-500/50 rounded" />
229+
<div className="w-14 h-6 bg-purple-500/50 rounded" />
230+
<div className="w-10 h-6 bg-purple-500/50 rounded" />
231231
</div>
232232
</motion.div>
233233
</div>
@@ -261,7 +261,7 @@ export default function NotFound(): React.ReactElement {
261261
}}
262262
>
263263
<div className="h-10 border-b-2 border-muted-foreground/30 bg-muted/25 flex items-center px-4">
264-
<div className="w-20 h-5 bg-muted-foreground/40 rounded"></div>
264+
<div className="w-20 h-5 bg-muted-foreground/40 rounded" />
265265
</div>
266266
<div className="p-4 grid grid-cols-6 gap-3">
267267
{[...Array(12)].map((_, i) => (
@@ -466,7 +466,7 @@ export default function NotFound(): React.ReactElement {
466466
<div className="flex flex-col flex-1 min-w-0">
467467
<div className="flex items-baseline gap-2 mb-1">
468468
<span className="text-sm font-semibold text-foreground">Kimu</span>
469-
<div className="w-1.5 h-1.5 bg-green-500 rounded-full"></div>
469+
<div className="w-1.5 h-1.5 bg-green-500 rounded-full" />
470470
</div>
471471
<div className="bg-muted/15 rounded-2xl rounded-tl-sm px-4 py-2.5 shadow-sm border border-border/30 w-fit max-w-[280px] sm:max-w-xs relative">
472472
<div className="absolute -inset-1 rounded-2xl pointer-events-none">
@@ -483,7 +483,7 @@ export default function NotFound(): React.ReactElement {
483483

484484
{/* Second message - consecutive message */}
485485
<div className="flex items-start gap-3 mb-1">
486-
<div className="w-8 h-8 flex-shrink-0"></div>
486+
<div className="w-8 h-8 flex-shrink-0" />
487487
<div className="flex flex-col flex-1 min-w-0 relative">
488488
{/* Typing indicator */}
489489
<motion.div
@@ -557,7 +557,7 @@ export default function NotFound(): React.ReactElement {
557557

558558
{/* Third message - Button as message */}
559559
<div className="flex items-start gap-3">
560-
<div className="w-8 h-8 flex-shrink-0"></div>
560+
<div className="w-8 h-8 flex-shrink-0" />
561561
<div className="flex flex-col flex-1 min-w-0 mt-2">
562562
<motion.div
563563
initial={{ opacity: 0, y: 10 }}

app/components/media/TextEditor.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import {
1111
AlignCenter,
1212
AlignRight,
1313
Bold,
14+
ChevronDown,
1415
Type,
1516
Plus,
1617
} from "lucide-react";
@@ -20,7 +21,6 @@ import {
2021
DropdownMenuContent,
2122
DropdownMenuItem,
2223
} from "~/components/ui/dropdown-menu";
23-
import { ChevronDown } from "lucide-react";
2424

2525
interface TextEditorProps {
2626
onAddText: (

app/components/timeline/MediaBin.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ const AudioPreview = ({ src }: { src: string }) => {
127127
window.addEventListener('pointerup', onUp, { once: true });
128128
return () => {
129129
window.removeEventListener('pointermove', onMove);
130-
window.removeEventListener('pointerup', onUp as any);
130+
window.removeEventListener('pointerup', onUp as EventListener);
131131
};
132132
}, [isScrubbing, seekFromClientX]);
133133

app/components/timeline/MediaBinRoute.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,5 @@ export default function MediaBinRoute() {
55
const context = useOutletContext();
66
// Simply reuse the index route component with the same context
77
// This avoids duplicate route id while providing a concrete element for /editor/media-bin
8-
// @ts-expect-error: runtime context shape is provided by parent Outlet
98
return <MediaBin />;
109
}

app/components/ui/KimuLogo.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ export const KimuLogo: React.FC<KimuLogoProps> = ({
2727
? " animate-float-icon transition-all duration-700"
2828
: "")
2929
}
30-
style={{ color, opacity, ...(style as any) }}
30+
style={{ color, opacity, ...(style as React.CSSProperties) }}
3131
{...rest}
3232
aria-label="Kimu Logo"
3333
>

app/components/ui/ProfileMenu.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,9 @@ export function ProfileMenu({
4343
setUsedBytes(Number.isFinite(u) ? u : 0);
4444
setLimitBytes(Number.isFinite(l) ? l : 2 * 1024 * 1024 * 1024);
4545
}
46-
} catch {}
46+
} catch {
47+
console.error('Storage fetch failed');
48+
}
4749
})();
4850
return () => {
4951
cancelled = true;

app/components/ui/ThemeProvider.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import * as React from "react";
2-
import { ThemeProvider as NextThemesProvider } from "next-themes";
2+
import { ThemeProvider as NextThemesProvider, type ThemeProviderProps } from "next-themes";
33

44
// Enhanced ThemeProvider for clean monochrome theming
55
export function ThemeProvider({
@@ -26,7 +26,7 @@ export function ThemeProvider({
2626
}
2727

2828
export function useTheme() {
29-
const context = React.useContext(NextThemesProvider as any);
29+
const context = React.useContext(NextThemesProvider as React.Context<ThemeProviderProps>);
3030
if (context === undefined) {
3131
throw new Error("useTheme must be used within a ThemeProvider");
3232
}

app/components/ui/following-pointer.tsx

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import React, { useEffect, useState } from "react";
2-
3-
import { motion, AnimatePresence, useMotionValue } from "framer-motion";
2+
import { motion, AnimatePresence, useMotionValue, MotionValue } from "framer-motion";
43
import { cn } from "~/lib/utils";
54

65
export const FollowerPointerCard = ({
@@ -61,8 +60,8 @@ export const FollowPointer = ({
6160
y,
6261
title,
6362
}: {
64-
x: any;
65-
y: any;
63+
x: MotionValue<number>;
64+
y: MotionValue<number>;
6665
title?: string | React.ReactNode;
6766
}) => {
6867
const pillColor = "#fb7185"; // rose-400 (lighter)
@@ -84,7 +83,7 @@ export const FollowPointer = ({
8483
width="1em"
8584
xmlns="http://www.w3.org/2000/svg"
8685
>
87-
<path d="M14.082 2.182a.5.5 0 0 1 .103.557L8.528 15.467a.5.5 0 0 1-.917-.007L5.57 10.694.803 8.652a.5.5 0 0 1-.006-.916l12.728-5.657a.5.5 0 0 1 .556.103z"></path>
86+
<path d="M14.082 2.182a.5.5 0 0 1 .103.557L8.528 15.467a.5.5 0 0 1-.917-.007L5.57 10.694.803 8.652a.5.5 0 0 1-.006-.916l12.728-5.657a.5.5 0 0 1 .556.103z" />
8887
</svg>
8988
<motion.div
9089
style={{ backgroundColor: pillColor, position: "absolute", left: 10, top: -8 }}

app/components/ui/glowing-effect.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ const GlowingEffect = memo(
7979

8080
const currentAngle =
8181
parseFloat(element.style.getPropertyValue("--start")) || 0;
82-
let targetAngle =
82+
const targetAngle =
8383
(180 * Math.atan2(mouseY - center[1], mouseX - center[0])) /
8484
Math.PI +
8585
90;

app/components/ui/sonner.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { useTheme } from "next-themes";
2-
import { Toaster as Sonner } from "sonner";
3-
import type { ToasterProps } from "sonner";
2+
import { Toaster as Sonner, type ToasterProps } from "sonner";
43

54
const Toaster = ({ ...props }: ToasterProps) => {
65
const { theme = "system" } = useTheme();

0 commit comments

Comments
 (0)