mirror of
https://github.com/Sonny93/my-links.git
synced 2025-12-08 22:53:25 +00:00
feat: add auth via google
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
import '../css/app.css';
|
||||
import { hydrateRoot } from 'react-dom/client';
|
||||
import { createInertiaApp } from '@inertiajs/react';
|
||||
/// <reference path="../../adonisrc.ts" />
|
||||
|
||||
import { resolvePageComponent } from '@adonisjs/inertia/helpers';
|
||||
import { createInertiaApp } from '@inertiajs/react';
|
||||
import { hydrateRoot } from 'react-dom/client';
|
||||
import '../css/app.css';
|
||||
|
||||
const appName = import.meta.env.VITE_APP_NAME || 'AdonisJS';
|
||||
|
||||
|
||||
5
inertia/hooks/use_user.tsx
Normal file
5
inertia/hooks/use_user.tsx
Normal file
@@ -0,0 +1,5 @@
|
||||
import { usePage } from '@inertiajs/react';
|
||||
import type { InertiaPage } from '~/types/inertia';
|
||||
|
||||
const useUser = () => usePage<InertiaPage>().props.auth;
|
||||
export default useUser;
|
||||
@@ -1,17 +1,28 @@
|
||||
import { InferPageProps } from '@adonisjs/inertia/types';
|
||||
import { Head } from '@inertiajs/react';
|
||||
import useUser from '~/hooks/use_user';
|
||||
import type AppsController from '../../app/controllers/apps_controller';
|
||||
|
||||
export default function Home(_: InferPageProps<AppsController, 'index'>) {
|
||||
const { isAuthenticated, user } = useUser();
|
||||
|
||||
export default function Home(props: { version: number }) {
|
||||
return (
|
||||
<>
|
||||
<Head title="Homepage" />
|
||||
|
||||
<div className="container">
|
||||
<div className="title">AdonisJS {props.version} x Inertia x React</div>
|
||||
<div className="title">AdonisJS x Inertia x React</div>
|
||||
|
||||
<span>
|
||||
Learn more about AdonisJS and Inertia.js by visiting the{' '}
|
||||
<a href="https://docs.adonisjs.com/guides/inertia">AdonisJS documentation</a>.
|
||||
</span>
|
||||
|
||||
<span>{isAuthenticated ? 'Authenticated' : 'Not authenticated'}</span>
|
||||
<span>
|
||||
{isAuthenticated ? <a href="/auth/logout">Logout</a> : <a href="/auth/login">Login</a>}
|
||||
</span>
|
||||
<pre>{JSON.stringify(user, null, 2)}</pre>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
|
||||
4
inertia/types/app.d.ts
vendored
Normal file
4
inertia/types/app.d.ts
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
import { Serialize } from '@tuyau/utils/types';
|
||||
import type UserModel from '../../app/models/user';
|
||||
|
||||
type User = Serialize<UserModel>;
|
||||
8
inertia/types/inertia.d.ts
vendored
Normal file
8
inertia/types/inertia.d.ts
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
import type { User } from './app';
|
||||
|
||||
export type InertiaPage<T extends Record<string, unknown> = Record<string, unknown>> = T & {
|
||||
auth: {
|
||||
user?: User;
|
||||
isAuthenticated: boolean;
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user