mirror of
https://github.com/Suwayomi/Suwayomi-Server.git
synced 2026-07-02 10:24:35 -05:00
add page title
This commit is contained in:
@@ -1,9 +1,12 @@
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import React, { useContext, useEffect, useState } from 'react';
|
||||
import ExtensionCard from '../components/ExtensionCard';
|
||||
import NavBarTitle from '../context/NavbarTitle';
|
||||
|
||||
export default function Extensions() {
|
||||
let mapped;
|
||||
const { setTitle } = useContext(NavBarTitle);
|
||||
setTitle('Extensions');
|
||||
const [extensions, setExtensions] = useState<IExtension[]>([]);
|
||||
let mapped;
|
||||
|
||||
useEffect(() => {
|
||||
fetch('http://127.0.0.1:4567/api/v1/extension/list')
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import React, { useEffect, useState, useContext } from 'react';
|
||||
import { useParams } from 'react-router-dom';
|
||||
import ChapterCard from '../components/ChapterCard';
|
||||
import MangaDetails from '../components/MangaDetails';
|
||||
import NavBarTitle from '../context/NavbarTitle';
|
||||
|
||||
export default function Manga() {
|
||||
const { id } = useParams<{id: string}>();
|
||||
const { setTitle } = useContext(NavBarTitle);
|
||||
|
||||
const [manga, setManga] = useState<IManga>();
|
||||
const [chapters, setChapters] = useState<IChapter[]>([]);
|
||||
@@ -12,7 +14,10 @@ export default function Manga() {
|
||||
useEffect(() => {
|
||||
fetch(`http://127.0.0.1:4567/api/v1/manga/${id}/`)
|
||||
.then((response) => response.json())
|
||||
.then((data) => setManga(data));
|
||||
.then((data: IManga) => {
|
||||
setManga(data);
|
||||
setTitle(data.title);
|
||||
});
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
|
||||
@@ -1,12 +1,20 @@
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import React, { useContext, useEffect, useState } from 'react';
|
||||
import { useParams } from 'react-router-dom';
|
||||
import MangaGrid from '../components/MangaGrid';
|
||||
import NavBarTitle from '../context/NavbarTitle';
|
||||
|
||||
export default function MangaList(props: { popular: boolean }) {
|
||||
const { sourceId } = useParams<{sourceId: string}>();
|
||||
const { setTitle } = useContext(NavBarTitle);
|
||||
const [mangas, setMangas] = useState<IManga[]>([]);
|
||||
const [lastPageNum] = useState<number>(1);
|
||||
|
||||
useEffect(() => {
|
||||
fetch(`http://127.0.0.1:4567/api/v1/source/${sourceId}`)
|
||||
.then((response) => response.json())
|
||||
.then((data: { name: string }) => setTitle(data.name));
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
const sourceType = props.popular ? 'popular' : 'latest';
|
||||
fetch(`http://127.0.0.1:4567/api/v1/source/${sourceId}/${sourceType}/${lastPageNum}`)
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import React, { useContext, useEffect, useState } from 'react';
|
||||
import { useParams } from 'react-router-dom';
|
||||
import NavBarTitle from '../context/NavbarTitle';
|
||||
|
||||
const style = {
|
||||
display: 'flex',
|
||||
@@ -14,14 +15,24 @@ interface IPage {
|
||||
imageUrl: string
|
||||
}
|
||||
|
||||
interface IData {
|
||||
first: IChapter
|
||||
second: IPage[]
|
||||
}
|
||||
|
||||
export default function Reader() {
|
||||
const { setTitle } = useContext(NavBarTitle);
|
||||
|
||||
const [pages, setPages] = useState<IPage[]>([]);
|
||||
const { chapterId, mangaId } = useParams<{chapterId: string, mangaId: string}>();
|
||||
|
||||
useEffect(() => {
|
||||
fetch(`http://127.0.0.1:4567/api/v1/manga/${mangaId}/chapter/${chapterId}`)
|
||||
.then((response) => response.json())
|
||||
.then((data) => setPages(data));
|
||||
.then((data:IData) => {
|
||||
setTitle(data.first.name);
|
||||
setPages(data.second);
|
||||
});
|
||||
}, []);
|
||||
|
||||
pages.sort((a, b) => (a.index - b.index));
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import React, { useState } from 'react';
|
||||
import React, { useContext, useState } from 'react';
|
||||
import { makeStyles } from '@material-ui/core/styles';
|
||||
import TextField from '@material-ui/core/TextField';
|
||||
import Button from '@material-ui/core/Button';
|
||||
import MangaGrid from '../components/MangaGrid';
|
||||
import NavBarTitle from '../context/NavbarTitle';
|
||||
|
||||
const useStyles = makeStyles((theme) => ({
|
||||
root: {
|
||||
@@ -14,6 +15,8 @@ const useStyles = makeStyles((theme) => ({
|
||||
}));
|
||||
|
||||
export default function Search() {
|
||||
const { setTitle } = useContext(NavBarTitle);
|
||||
setTitle('Search');
|
||||
const classes = useStyles();
|
||||
const [error, setError] = useState<boolean>(false);
|
||||
const [mangas, setMangas] = useState<IManga[]>([]);
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import React, { useContext, useEffect, useState } from 'react';
|
||||
import SourceCard from '../components/SourceCard';
|
||||
import NavBarTitle from '../context/NavbarTitle';
|
||||
|
||||
export default function Sources() {
|
||||
let mapped;
|
||||
const { setTitle } = useContext(NavBarTitle);
|
||||
setTitle('Sources');
|
||||
const [sources, setSources] = useState<ISource[]>([]);
|
||||
let mapped;
|
||||
|
||||
useEffect(() => {
|
||||
fetch('http://127.0.0.1:4567/api/v1/source/list')
|
||||
|
||||
Reference in New Issue
Block a user