wip

Seto Elkahfi committed Aug 4, 2024 at 15:57 UTC 2bade6d92d19e60efb4d484a3858f90927c01f8d
16 files changed +53 -22
frontend/splitfire-desktop/app/_ui/LoadingView.tsx new
+12
@@ -0,0 +1,12 @@
1 +import { Col, Container, Spinner } from "react-bootstrap";
2 +
3 +export function LoadingView() {
4 +
5 + return <Container>
6 + <Col className="align-self-center" xs={12}>
7 + <Spinner animation="grow" role="status" variant="danger">
8 + <span className="visually-hidden">Loading...</span>
9 + </Spinner>
10 + </Col>
11 + </Container>
12 +}
\ No newline at end of file
frontend/splitfire-desktop/app/_ui/components/tooltip.tsx
+1 -1
@@ -2,7 +2,7 @@
2
3 import * as React from 'react'
4 import * as TooltipPrimitive from '@radix-ui/react-tooltip'
5 -import { cn } from '@/app/_lib/utils'
5 +import { cn } from '@/lib/utils'
6
7 const TooltipProvider = TooltipPrimitive.Provider
8
frontend/splitfire-desktop/app/debug/page.tsx
+1 -1
@@ -8,9 +8,9 @@ import {
8 } from "../../lib/tauriHandler";
9 import { Button } from "../_ui/components/button";
10 import { useEffect, useState } from "react";
11 -import { LoadingView } from "../_src/components/templates/LoadingView";
11 import { TauriResponse } from "@/models/shared";
12 import { useLogger } from "../../lib/logger";
13 +import { LoadingView } from "../_ui/LoadingView";
14
15 enum State {
16 LOADING,
frontend/splitfire-desktop/app/login/page.tsx
+5 -5
@@ -2,16 +2,16 @@
2
3 import * as Form from "@radix-ui/react-form";
4 import { invoke } from "@tauri-apps/api/tauri";
5 -import { TAURI_ACCOUNT_LOGIN } from "../../lib/tauriHandler";
6 -import { Button } from "../_ui/components/button";
5 +import { TAURI_ACCOUNT_LOGIN } from "@/lib/tauriHandler";
6 +import { Button } from "@/app/_ui/components/button";
7 import { useState } from "react";
8 -import { UserContext } from "../../lib/CurrentUserContext";
8 +import { UserContext } from "@/lib/CurrentUserContext";
9 import { CurrentUser, CurrentUserType, db } from "../../lib/db";
10 import { AccountLoginResponse } from "@/models/account";
11 -import { Mode } from "../_src/components/player/models/Mode";
12 -import { LoadingView } from "../_src/components/templates/LoadingView";
11 import { useRouter } from "next/navigation";
12 import { TauriResponse } from "@/models/shared";
13 +import { Mode } from "@/models/mode";
14 +import { LoadingView } from "../_ui/LoadingView";
15
16 enum State {
17 LOADING,
frontend/splitfire-desktop/app/play/_components/volume-slider.tsx
+1 -1
@@ -1,4 +1,4 @@
1 -import { ModeDemucs } from "@/app/_src/components/player/models/Mode"
1 +import { ModeDemucs } from "@/models/mode"
2 import { Container, Row, Col, Form } from "react-bootstrap"
3
4 export function VolumeSlider(props: { _onVolumeChange: (mode: ModeDemucs, value: string) => void, isHidden: boolean }) {
frontend/splitfire-desktop/app/split/_components/button-split.tsx
+1 -1
@@ -51,7 +51,7 @@ export default function ButtonGenerateBackingTracks({
51
52 if (goToLogin) {
53 router.push("/login");
54 - return;
54 + return <></>;
55 }
56
57 if (state === State.LOADING) {
frontend/splitfire-desktop/app/split/_components/votes-view-main.tsx
+1 -1
@@ -99,7 +99,7 @@ export default function MainVotesView(props: {
99
100 if (goToLogin) {
101 router.push("/login");
102 - return;
102 + return <></>;
103 }
104
105 return (
frontend/splitfire-desktop/app/split/_components/votes-view.tsx
+1 -1
@@ -32,7 +32,7 @@ export default function VotesView({
32 if (goToPlayer) {
33 log.debug("Go to player");
34 router.push(`/play?audioFileId=${audioFile?.id}`);
35 - return;
35 + return <></>;
36 }
37
38 const onVotesAggregateUpdate = (votesAggregate: number) => {
frontend/splitfire-desktop/app/split/page.tsx
+5 -5
@@ -1,14 +1,14 @@
1 "use client";
2
3 import { useSearchParams } from "next/navigation";
4 -import { useLogger } from "../../lib/logger";
4 +import { useLogger } from "@/lib/logger";
5 import { useEffect, useState } from "react";
6 import { invoke } from "@tauri-apps/api";
7 -import { TAURI_CONTENT_SONG_BRIDGE_DETAIL } from "../../lib/tauriHandler";
8 -import { SongProvider } from "../../models/SongResponse";
9 -import { SongBridgeResponse } from "../_src/components/pages/esef/SplitFireView";
10 -import { SongProviderVote } from "../../models/SongVotesDetailResponse";
7 +import { TAURI_CONTENT_SONG_BRIDGE_DETAIL } from "@/lib/tauriHandler";
8 +import { SongProvider } from "@/models/SongResponse";
9 +import { SongProviderVote } from "@/models/SongVotesDetailResponse";
10 import SongVotes from "./_components/song-votes";
11 +import { SongBridgeResponse } from "@/models/content";
12
13 export default function Page() {
14 const log = useLogger("Play");
frontend/splitfire-desktop/lib/axios.ts new
+12
@@ -0,0 +1,12 @@
1 +import axios from "axios";
2 +
3 +let host = process.env.REACT_APP_SPLITFIRE_API_HOST;
4 +
5 +const client = axios.create({
6 + baseURL: `https://${host}/api/v1/`,
7 + headers: {
8 + "Content-Type": "application/json",
9 + },
10 +});
11 +
12 +export default client;
frontend/splitfire-desktop/lib/db.ts
+6 -6
@@ -1,11 +1,11 @@
1 import Dexie, { Table } from "dexie";
2 -import { Mode, ModeDemucs } from "../app/_src/components/player/models/Mode";
2 import User from "../models/user";
4 -import { AudioFile } from "../app/_src/components/player/models/AudioFile";
5 -import axios from "../app/_src/lib/axios";
6 -import { Result } from "../app/_src/components/player/models/Result";
3 +import axios from "@/lib/axios"; // Move to rust
4 import { Logger } from "tslog";
8 -import isTauri from "../app/_src/lib/isTauri";
5 +import { AudioFile } from "@/models/audio-file";
6 +import { ModeDemucs } from "@/models/mode";
7 +import { Mode } from "fs";
8 +import { Result } from "@/models/result";
9
10 // Legacy Spleeter result file
11 export interface AudioFiles {
@@ -48,7 +48,7 @@ export class SplitfireDB extends Dexie {
48
49 log = new Logger({
50 name: "SplitfireDB",
51 - type: isTauri() ? "json" : "pretty",
51 + type: "json",
52 });
53
54 constructor() {
frontend/splitfire-desktop/models/audio-file.ts renamed
frontend/splitfire-desktop/models/content.ts
+7
@@ -26,4 +26,11 @@ export interface SongProviderResponse {
26 message: string,
27 song_provider: SongProvider
28 votes: SongProviderVote[]
29 +}
30 +
31 +export interface SongBridgeResponse {
32 + status: TauriResponse,
33 + message: string,
34 + song_provider: SongProvider
35 + votes: SongProviderVote[]
36 }
\ No newline at end of file
frontend/splitfire-desktop/models/lyricSynches.ts renamed
frontend/splitfire-desktop/models/mode.ts renamed
frontend/splitfire-desktop/models/result.ts renamed