Arslanşah ile Giriş Eklendi

This commit is contained in:
batuhancoskun 2025-07-24 18:43:35 +03:00
parent ab0198060e
commit 083cb13c39
8 changed files with 115 additions and 26 deletions

View File

@ -9,6 +9,7 @@ const cookie = new Cookies();
export default function App() {
return (
<GSProvider>
<div className='flex flex-col w-full'>
{/* <Navbar/> */}
<div className='flex h-full'>
@ -30,9 +31,7 @@ export default function App() {
</div>
</div>
</div>
</GSProvider>
);
};
// <GSProvider>
// </GSProvider>

View File

@ -4,6 +4,7 @@ import Books from './books/pages/Books';
import Book from './books/pages/Book';
import Publish from './quotes/pages/Publish';
import Page from './home/Page';
import Login from './logins/Login';
export default function Pages() {
return (
@ -12,6 +13,7 @@ export default function Pages() {
<Route path='/books' element={<Books/>} />
<Route path='/book/:id' element={<Book/>} />
<Route path='/publish' element={<Publish/>}/>
<Route path='/login' element={<Login/>} />
</Routes>
);
};

View File

@ -1,6 +1,7 @@
import React, { useEffect, useState } from 'react'
import { FetchPOST } from '../../../middlewares/Fetch';
import { Link } from 'react-router-dom';
import Cookies from 'universal-cookie';
export default function Books() {
const [loading, setLoading] = useState(true);

View File

@ -0,0 +1,29 @@
import React, { useContext, useEffect, useState } from 'react'
import { FetchPOST } from '../../middlewares/Fetch'
import { GSContext } from '../../middlewares/GlobalStore';
import { checkLogin } from '../../middlewares/logins/Check';
export default function Login() {
const {data} = useContext(GSContext);
const [secure, setSecure] = useState(true);
useEffect(() => {
checkLogin().then(res => {
setSecure(res.secure);
});
},[secure]);
if(secure === true){
return(
<div className='flex items-center justify-center p-4 bg-pc rounded-2xl'>
<p>Zaten giriş yaptınız.</p>
</div>
)
};
return (
<div className='flex'>
<a href={`${data.protocol}//${data.back_end}/api/v1/logins/oauth/mastodon/login`} className='p-4 bg-pc'>Arslanşah ile giriş yap</a>
</div>
);
};

View File

@ -1,12 +1,32 @@
import React from 'react'
import React, { useEffect, useState } from 'react'
import { Link } from 'react-router-dom'
import { checkLogin } from '../../middlewares/logins/Check'
function Left() {
const [secure, setSecure] = useState(false);
const [loading, setLoading] = useState(false);
useEffect(() => {
checkLogin().then(res => {
setSecure(res.secure);
setLoading(true);
});
},[secure]);
if(loading === false){
return(<></>)
};
return (
<div className='flex flex-col gap-2'>
<div className='flex flex-col gap-2'>
<a className='w-full p-4 bg-gray-200 cursor-pointer rounded-2xl hover:bg-gray-300' onClick={() => window.history.back()}>Geri Git</a>
{
(secure === true) ?
<Link to={"/publish"} className='w-full p-4 bg-gray-200 rounded-2xl hover:bg-gray-300'>Gönderi Oluştur</Link>
:
<Link to={"/login"} className='w-full p-4 bg-gray-200 rounded-2xl hover:bg-gray-300'>Giriş Yap</Link>
}
</div>
<div className='flex flex-col bg-gray-200 overflow-hidden rounded-lg'>
<Link to={"/"} className='p-3 hover:bg-gray-300'>Anasayfa</Link>

View File

@ -1,9 +1,21 @@
import React, { useState } from 'react'
import React, { useEffect, useState } from 'react'
import { FetchPOST } from '../../../middlewares/Fetch';
import { checkLogin } from '../../../middlewares/logins/Check';
export default function Publish() {
const [books, setBooks] = useState([]);
const [selectedBook, setSelectedBook] = useState(null);
const [secure, setSecure] = useState(false);
useEffect(() => {
checkLogin().then(res => {
setSecure(res.secure);
});
},[secure]);
if(secure === false){
return(<></>);
};
return (
<div className='flex flex-col gap-4 w-full'>

View File

@ -2,12 +2,17 @@ import { createContext, useContext, useEffect, useState } from 'react';
const GSContext = createContext();
const GSProvider = ({ children, data, locales }) => {
const [loading, setLoading] = useState(true);
const GSProvider = ({ children }) => {
const [loading, setLoading] = useState(false);
const data = {
protocol: window.location.protocol,
back_end: "localhost:3001",
front_end: "localhost:3000"
};
if(loading === false){
return (
<GSContext.Provider>
<GSContext.Provider value={{data}}>
{children}
</GSContext.Provider>
);

View File

@ -0,0 +1,21 @@
import { FetchPOST } from "../Fetch";
export async function checkLogin() {
const data = {
secure: false
};
await FetchPOST({
port: 3001,
pathname: "/api/v1/logins/normal/verify"
}).then(res => {
if(res.Status = 200 && res.Token){
console.log(res);
data.secure = true;
}else{
data.secure = false;
};
});
return data;
};