From 885aab0d9d1d18834bd9a39d1399b5cd46b30d3b Mon Sep 17 00:00:00 2001 From: bivashy Date: Fri, 2 Jan 2026 23:08:26 +0500 Subject: [PATCH] Initial implementation of `Import` page, project cleanup --- .../import/uploadentry/UploadEntry.vue | 43 ++++++++++++++ .../internal/musiccard/MusicCard.vue | 4 +- app/components/ui/button/Button.vue | 20 +++---- app/components/ui/button/index.ts | 58 +++++++++---------- app/components/ui/outline/Outline.vue | 2 +- app/composeables/api/axios-instance.ts | 1 - app/pages/edit.vue | 1 + app/pages/import.vue | 38 +++++++----- 8 files changed, 107 insertions(+), 60 deletions(-) create mode 100644 app/components/internal/import/uploadentry/UploadEntry.vue diff --git a/app/components/internal/import/uploadentry/UploadEntry.vue b/app/components/internal/import/uploadentry/UploadEntry.vue new file mode 100644 index 0000000..dc8155d --- /dev/null +++ b/app/components/internal/import/uploadentry/UploadEntry.vue @@ -0,0 +1,43 @@ + + + diff --git a/app/components/internal/musiccard/MusicCard.vue b/app/components/internal/musiccard/MusicCard.vue index 2eef182..d8af47c 100644 --- a/app/components/internal/musiccard/MusicCard.vue +++ b/app/components/internal/musiccard/MusicCard.vue @@ -6,11 +6,11 @@
-
+

{{ title }}

-

+

{{ date }}

diff --git a/app/components/ui/button/Button.vue b/app/components/ui/button/Button.vue index 374320b..08cc167 100644 --- a/app/components/ui/button/Button.vue +++ b/app/components/ui/button/Button.vue @@ -7,23 +7,19 @@ import { cn } from "@/lib/utils" import { buttonVariants } from "." interface Props extends PrimitiveProps { - variant?: ButtonVariants["variant"] - size?: ButtonVariants["size"] - class?: HTMLAttributes["class"] + variant?: ButtonVariants["variant"] + size?: ButtonVariants["size"] + class?: HTMLAttributes["class"] } const props = withDefaults(defineProps(), { - as: "button", + as: "button", }) diff --git a/app/components/ui/button/index.ts b/app/components/ui/button/index.ts index c90f809..8fe0323 100644 --- a/app/components/ui/button/index.ts +++ b/app/components/ui/button/index.ts @@ -4,36 +4,36 @@ import { cva } from "class-variance-authority" export { default as Button } from "./Button.vue" export const buttonVariants = cva( - "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", - { - variants: { - variant: { - default: - "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90", - destructive: - "bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60", - outline: - "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50", - secondary: - "bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80", - ghost: - "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50", - link: "text-primary underline-offset-4 hover:underline", - }, - size: { - "default": "h-9 px-4 py-2 has-[>svg]:px-3", - "sm": "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5", - "lg": "h-10 rounded-md px-6 has-[>svg]:px-4", - "icon": "size-9", - "icon-sm": "size-8", - "icon-lg": "size-10", - }, + "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", + { + variants: { + variant: { + default: + "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90", + destructive: + "bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60", + outline: + "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50", + secondary: + "bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80", + ghost: + "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50", + link: "text-primary underline-offset-4 hover:underline", + }, + size: { + "default": "h-9 px-4 py-2 has-[>svg]:px-3", + "sm": "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5", + "lg": "h-10 rounded-md px-6 has-[>svg]:px-4", + "icon": "size-9", + "icon-sm": "size-8", + "icon-lg": "size-10", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, }, - defaultVariants: { - variant: "default", - size: "default", - }, - }, ) export type ButtonVariants = VariantProps diff --git a/app/components/ui/outline/Outline.vue b/app/components/ui/outline/Outline.vue index a57345e..23c8ec4 100644 --- a/app/components/ui/outline/Outline.vue +++ b/app/components/ui/outline/Outline.vue @@ -3,7 +3,7 @@ import type { PrimitiveProps } from "reka-ui" import type { HTMLAttributes } from "vue" import type { FrameVariants } from "../frame" import { cn } from "@/lib/utils" -import Frame from "@/components/ui/frame/Frame.vue" +import Frame from "../frame/Frame.vue" interface Props extends PrimitiveProps { diff --git a/app/composeables/api/axios-instance.ts b/app/composeables/api/axios-instance.ts index d7d78b3..798c85a 100644 --- a/app/composeables/api/axios-instance.ts +++ b/app/composeables/api/axios-instance.ts @@ -6,7 +6,6 @@ export const axiosInstance = ( options?: AxiosRequestConfig, ): Promise> => { const baseURL = useRuntimeConfig().public.apiBaseUrl; - console.log(baseURL) const source = Axios.CancelToken.source(); const promise = AXIOS_INSTANCE({ ...config, diff --git a/app/pages/edit.vue b/app/pages/edit.vue index 175ad47..d33dcbc 100644 --- a/app/pages/edit.vue +++ b/app/pages/edit.vue @@ -46,6 +46,7 @@ const { mutate: reorderTracks } = useMutation({ return { previousTracks }; }, onError: (err, { playlistId }, context) => { + console.log(err) if (context?.previousTracks) { queryClient.setQueryData(getGetPlaylistTracksQueryKey(playlistId), context.previousTracks); } diff --git a/app/pages/import.vue b/app/pages/import.vue index 8ce9a94..b4bbbd5 100644 --- a/app/pages/import.vue +++ b/app/pages/import.vue @@ -1,7 +1,8 @@ -
- - Hello - -
- +
+

+ Uploaded files +

+ +
+