mirror of
https://github.com/C9Glax/tranga-website.git
synced 2025-04-19 14:53:20 +02:00
Search Styling
This commit is contained in:
parent
99265bacb2
commit
19e033995d
@ -2,7 +2,7 @@ import Sheet from '@mui/joy/Sheet';
|
|||||||
import './App.css'
|
import './App.css'
|
||||||
import Settings from "./Settings.tsx";
|
import Settings from "./Settings.tsx";
|
||||||
import Header from "./Header.tsx";
|
import Header from "./Header.tsx";
|
||||||
import {Badge, Button} from "@mui/joy";
|
import {Badge, Button, Card, CardContent, CardCover, Typography} from "@mui/joy";
|
||||||
import {useState} from "react";
|
import {useState} from "react";
|
||||||
import {ApiUriContext} from "./api/fetchApi.tsx";
|
import {ApiUriContext} from "./api/fetchApi.tsx";
|
||||||
import Search from './Components/Search.tsx';
|
import Search from './Components/Search.tsx';
|
||||||
@ -23,12 +23,25 @@ export default function App () {
|
|||||||
<Badge color={"danger"} invisible={apiConnected} badgeContent={"!"}>
|
<Badge color={"danger"} invisible={apiConnected} badgeContent={"!"}>
|
||||||
<Button onClick={() => setShowSettings(true)}>Settings</Button>
|
<Button onClick={() => setShowSettings(true)}>Settings</Button>
|
||||||
</Badge>
|
</Badge>
|
||||||
<Button onClick={() => setShowSearch(true)}>Search</Button>
|
|
||||||
</Header>
|
</Header>
|
||||||
<Settings open={showSettings} setOpen={setShowSettings} setApiUri={setApiUri} setConnected={setApiConnected} />
|
<Settings open={showSettings} setOpen={setShowSettings} setApiUri={setApiUri} setConnected={setApiConnected} />
|
||||||
<Search open={showSearch} setOpen={setShowSearch} />
|
<Search open={showSearch} setOpen={setShowSearch} />
|
||||||
<Sheet className={"app-content"}>
|
<Sheet className={"app-content"}>
|
||||||
<MangaList />
|
<MangaList>
|
||||||
|
<Card onClick={() => setShowSearch(true)} sx={{height:"400px", width:"300px"}}>
|
||||||
|
<CardCover>
|
||||||
|
<img src={"/blahaj.png"} />
|
||||||
|
</CardCover>
|
||||||
|
<CardCover sx={{
|
||||||
|
background: 'rgba(234, 119, 246, 0.14)',
|
||||||
|
backdropFilter: 'blur(6.9px)',
|
||||||
|
webkitBackdropFilter: 'blur(6.9px)',
|
||||||
|
}}/>
|
||||||
|
<CardContent>
|
||||||
|
<Typography level={"h1"}>Search</Typography>
|
||||||
|
</CardContent>
|
||||||
|
</Card>
|
||||||
|
</MangaList>
|
||||||
</Sheet>
|
</Sheet>
|
||||||
</Sheet>
|
</Sheet>
|
||||||
</ApiUriContext.Provider>
|
</ApiUriContext.Provider>
|
||||||
|
@ -7,7 +7,7 @@ import IDownloadAvailableChaptersJob from "../api/types/Jobs/IDownloadAvailableC
|
|||||||
import {MangaFromId} from "./Manga.tsx";
|
import {MangaFromId} from "./Manga.tsx";
|
||||||
import { Remove } from "@mui/icons-material";
|
import { Remove } from "@mui/icons-material";
|
||||||
|
|
||||||
export default function MangaList(){
|
export default function MangaList({children}: {children?: React.ReactNode} ){
|
||||||
const apiUri = useContext(ApiUriContext);
|
const apiUri = useContext(ApiUriContext);
|
||||||
|
|
||||||
const [jobList, setJobList] = useState<IDownloadAvailableChaptersJob[]>([]);
|
const [jobList, setJobList] = useState<IDownloadAvailableChaptersJob[]>([]);
|
||||||
@ -26,6 +26,7 @@ export default function MangaList(){
|
|||||||
|
|
||||||
return(
|
return(
|
||||||
<Stack direction="row" spacing={1}>
|
<Stack direction="row" spacing={1}>
|
||||||
|
{children}
|
||||||
{jobList.map((job) => (
|
{jobList.map((job) => (
|
||||||
<MangaFromId key={job.mangaId} mangaId={job.mangaId}>
|
<MangaFromId key={job.mangaId} mangaId={job.mangaId}>
|
||||||
<Button color={"danger"} endDecorator={<Remove />} onClick={() => deleteJob(job.jobId)}>Delete</Button>
|
<Button color={"danger"} endDecorator={<Remove />} onClick={() => deleteJob(job.jobId)}>Delete</Button>
|
||||||
|
@ -48,6 +48,7 @@ export default function Search({open, setOpen}:{open:boolean, setOpen:React.Disp
|
|||||||
const [resultsLoading, setResultsLoading] = useState<boolean>(false);
|
const [resultsLoading, setResultsLoading] = useState<boolean>(false);
|
||||||
|
|
||||||
const StartSearch = useCallback((mangaConnector : IMangaConnector | undefined, value: string)=>{
|
const StartSearch = useCallback((mangaConnector : IMangaConnector | undefined, value: string)=>{
|
||||||
|
setStep(3);
|
||||||
if(mangaConnector === undefined)
|
if(mangaConnector === undefined)
|
||||||
return;
|
return;
|
||||||
setResults([]);
|
setResults([]);
|
||||||
@ -92,19 +93,20 @@ export default function Search({open, setOpen}:{open:boolean, setOpen:React.Disp
|
|||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
return (
|
return (
|
||||||
<Drawer size={"lg"} anchor={"right"} open={open} onClose={() => {
|
<Drawer size={"lg"} anchor={"right"} open={open} onClose={() => {
|
||||||
setStep(2);
|
setStep(1);
|
||||||
setResults([]);
|
setResults([]);
|
||||||
setOpen(false);
|
setOpen(false);
|
||||||
}}>
|
}}>
|
||||||
<ModalClose />
|
<ModalClose />
|
||||||
<Stepper orientation={"vertical"} sx={{ height: '100%', width: "calc(100% - 80px)", margin:"40px"}}>
|
<Stepper orientation={"vertical"} sx={{ height: '100%', width: "calc(100% - 80px)", margin:"40px"}}>
|
||||||
<Step indicator={
|
<Step indicator={
|
||||||
<StepIndicator variant="solid" color="primary">
|
<StepIndicator variant={step==1?"solid":"outlined"} color={mangaConnectors.length < 1 ? "danger" : "primary"}>
|
||||||
1
|
1
|
||||||
</StepIndicator>}>
|
</StepIndicator>}>
|
||||||
<Skeleton loading={mangaConnectorsLoading}>
|
<Skeleton loading={mangaConnectorsLoading}>
|
||||||
<Select
|
<Select
|
||||||
disabled={mangaConnectorsLoading || resultsLoading}
|
color={mangaConnectors.length < 1 ? "danger" : "neutral"}
|
||||||
|
disabled={mangaConnectorsLoading || resultsLoading || mangaConnectors.length < 1}
|
||||||
placeholder={"Select Connector"}
|
placeholder={"Select Connector"}
|
||||||
slotProps={{
|
slotProps={{
|
||||||
listbox: {
|
listbox: {
|
||||||
@ -119,13 +121,13 @@ export default function Search({open, setOpen}:{open:boolean, setOpen:React.Disp
|
|||||||
setStep(2);
|
setStep(2);
|
||||||
setSelectedMangaConnector(mangaConnectors.find((o) => o.name === newValue));
|
setSelectedMangaConnector(mangaConnectors.find((o) => o.name === newValue));
|
||||||
}}
|
}}
|
||||||
endDecorator={<Chip size={"sm"} color={"primary"}>{mangaConnectors.length}</Chip>}>
|
endDecorator={<Chip size={"sm"} color={mangaConnectors.length < 1 ? "danger" : "primary"}>{mangaConnectors.length}</Chip>}>
|
||||||
{mangaConnectors?.map((connector: IMangaConnector) => ConnectorOption(connector))}
|
{mangaConnectors?.map((connector: IMangaConnector) => ConnectorOption(connector))}
|
||||||
</Select>
|
</Select>
|
||||||
</Skeleton>
|
</Skeleton>
|
||||||
</Step>
|
</Step>
|
||||||
<Step indicator={
|
<Step indicator={
|
||||||
<StepIndicator variant="solid" color="primary">
|
<StepIndicator variant={step==2?"solid":"outlined"} color="primary">
|
||||||
2
|
2
|
||||||
</StepIndicator>}>
|
</StepIndicator>}>
|
||||||
<Input disabled={step < 2 || resultsLoading} placeholder={"Name or Url " + (selectedMangaConnector ? selectedMangaConnector.baseUris[0] : "")} onKeyDown={(e) => {
|
<Input disabled={step < 2 || resultsLoading} placeholder={"Name or Url " + (selectedMangaConnector ? selectedMangaConnector.baseUris[0] : "")} onKeyDown={(e) => {
|
||||||
@ -137,7 +139,7 @@ export default function Search({open, setOpen}:{open:boolean, setOpen:React.Disp
|
|||||||
}}/>
|
}}/>
|
||||||
</Step>
|
</Step>
|
||||||
<Step indicator={
|
<Step indicator={
|
||||||
<StepIndicator variant="solid" color="primary">
|
<StepIndicator variant={step==3?"solid":"outlined"} color="primary">
|
||||||
3
|
3
|
||||||
</StepIndicator>}>
|
</StepIndicator>}>
|
||||||
<Typography endDecorator={<Chip size={"sm"} color={"primary"}>{results.length}</Chip>}>Results</Typography>
|
<Typography endDecorator={<Chip size={"sm"} color={"primary"}>{results.length}</Chip>}>Results</Typography>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user