This commit is contained in:
ct
2025-07-15 03:11:43 +08:00
parent 31383349c2
commit eb207b98d9
8 changed files with 7 additions and 34 deletions

View File

@@ -2,7 +2,6 @@
namespace App\Http\Middleware; namespace App\Http\Middleware;
use Illuminate\Foundation\Inspiring;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Inertia\Middleware; use Inertia\Middleware;
use Tighten\Ziggy\Ziggy; use Tighten\Ziggy\Ziggy;
@@ -37,12 +36,8 @@ public function version(Request $request): ?string
*/ */
public function share(Request $request): array public function share(Request $request): array
{ {
[$message, $author] = str(Inspiring::quotes()->random())->explode('-');
return [ return [
...parent::share($request), ...parent::share($request),
'name' => config('app.name'),
'quote' => ['message' => trim($message), 'author' => trim($author)],
'auth' => [ 'auth' => [
'user' => $request->user(), 'user' => $request->user(),
'user_is_admin' => user_is_master_admin($request->user()), 'user_is_admin' => user_is_master_admin($request->user()),
@@ -51,12 +46,6 @@ public function share(Request $request): array
...(new Ziggy)->toArray(), ...(new Ziggy)->toArray(),
'location' => $request->url(), 'location' => $request->url(),
], ],
'sidebarOpen' => ! $request->hasCookie('sidebar_state') || $request->cookie('sidebar_state') === 'true',
'flash' => [
'message' => fn () => $request->session()->get('message'),
'error' => fn () => $request->session()->get('error'),
'success' => fn () => $request->session()->get('success'),
],
]; ];
} }
} }

View File

@@ -8,11 +8,11 @@ interface AppShellProps {
} }
export function AppShell({ children, variant = 'header' }: AppShellProps) { export function AppShell({ children, variant = 'header' }: AppShellProps) {
const isOpen = usePage<SharedData>().props.sidebarOpen; const defaultSidebarOpen = true;
if (variant === 'header') { if (variant === 'header') {
return <div className="flex min-h-screen w-full flex-col">{children}</div>; return <div className="flex min-h-screen w-full flex-col">{children}</div>;
} }
return <SidebarProvider defaultOpen={isOpen}>{children}</SidebarProvider>; return <SidebarProvider defaultOpen={defaultSidebarOpen}>{children}</SidebarProvider>;
} }

View File

@@ -9,7 +9,7 @@ interface AuthLayoutProps {
} }
export default function AuthSplitLayout({ children, title, description }: PropsWithChildren<AuthLayoutProps>) { export default function AuthSplitLayout({ children, title, description }: PropsWithChildren<AuthLayoutProps>) {
const { name, quote } = usePage<SharedData>().props; const appName = 'MEMEFAST';
return ( return (
<div className="relative grid h-dvh flex-col items-center justify-center px-8 sm:px-0 lg:max-w-none lg:grid-cols-2 lg:px-0"> <div className="relative grid h-dvh flex-col items-center justify-center px-8 sm:px-0 lg:max-w-none lg:grid-cols-2 lg:px-0">
@@ -17,16 +17,8 @@ export default function AuthSplitLayout({ children, title, description }: PropsW
<div className="absolute inset-0 bg-zinc-900" /> <div className="absolute inset-0 bg-zinc-900" />
<Link href={route('home')} className="relative z-20 flex items-center text-lg font-medium"> <Link href={route('home')} className="relative z-20 flex items-center text-lg font-medium">
<AppLogoIcon className="mr-2 size-8 fill-current text-white" /> <AppLogoIcon className="mr-2 size-8 fill-current text-white" />
{name} {appName}
</Link> </Link>
{quote && (
<div className="relative z-20 mt-auto">
<blockquote className="space-y-2">
<p className="text-lg">&ldquo;{quote.message}&rdquo;</p>
<footer className="text-sm text-neutral-300">{quote.author}</footer>
</blockquote>
</div>
)}
</div> </div>
<div className="w-full lg:p-8"> <div className="w-full lg:p-8">
<div className="mx-auto flex w-full flex-col justify-center space-y-6 sm:w-[350px]"> <div className="mx-auto flex w-full flex-col justify-center space-y-6 sm:w-[350px]">

View File

@@ -6,15 +6,15 @@ const FlashMessages = () => {
const { flash } = usePage().props; const { flash } = usePage().props;
useEffect(() => { useEffect(() => {
if (flash.message) { if (flash?.message) {
toast.success(flash.message); toast.success(flash.message);
} }
if (flash.error) { if (flash?.error) {
toast.error(flash.error); toast.error(flash.error);
} }
if (flash.success) { if (flash?.success) {
toast.success(flash.success); toast.success(flash.success);
} }
}, [flash]); }, [flash]);

View File

@@ -1,7 +1,6 @@
import React from 'react'; import React from 'react';
import { Head } from '@inertiajs/react'; import { Head } from '@inertiajs/react';
import AuthUser from '@/modules/auth/auth-user'; import AuthUser from '@/modules/auth/auth-user';
import FlashMessages from '@/modules/flash/flash-messages';
import Footer from '@/pages/home/partials/Footer.jsx'; import Footer from '@/pages/home/partials/Footer.jsx';
interface PrivacyProps { interface PrivacyProps {
@@ -26,7 +25,6 @@ const Privacy: React.FC<PrivacyProps> = ({ content, title }) => {
</div> </div>
<Footer /> <Footer />
<FlashMessages />
<AuthUser /> <AuthUser />
</div> </div>
); );

View File

@@ -1,7 +1,6 @@
import React from 'react'; import React from 'react';
import { Head } from '@inertiajs/react'; import { Head } from '@inertiajs/react';
import AuthUser from '@/modules/auth/auth-user'; import AuthUser from '@/modules/auth/auth-user';
import FlashMessages from '@/modules/flash/flash-messages';
import Footer from '@/pages/home/partials/Footer.jsx'; import Footer from '@/pages/home/partials/Footer.jsx';
interface TermsProps { interface TermsProps {
@@ -26,7 +25,6 @@ const Terms: React.FC<TermsProps> = ({ content, title }) => {
</div> </div>
<Footer /> <Footer />
<FlashMessages />
<AuthUser /> <AuthUser />
</div> </div>
); );

View File

@@ -1,6 +1,5 @@
import AuthUser from '@/modules/auth/auth-user'; import AuthUser from '@/modules/auth/auth-user';
import Editor from '@/modules/editor/editor.jsx'; import Editor from '@/modules/editor/editor.jsx';
import FlashMessages from '@/modules/flash/flash-messages';
import FAQDiscord from './partials/FAQDiscord.jsx'; import FAQDiscord from './partials/FAQDiscord.jsx';
import Features from './partials/Features.jsx'; import Features from './partials/Features.jsx';
import Footer from './partials/Footer.jsx'; import Footer from './partials/Footer.jsx';
@@ -18,7 +17,6 @@ const Home = () => {
<FAQDiscord /> <FAQDiscord />
</div> </div>
<Footer /> <Footer />
<FlashMessages />
<AuthUser /> <AuthUser />
</div> </div>
); );

View File

@@ -24,10 +24,8 @@ export interface NavItem {
} }
export interface SharedData { export interface SharedData {
quote: { message: string; author: string };
auth: Auth; auth: Auth;
ziggy: Config & { location: string }; ziggy: Config & { location: string };
sidebarOpen: boolean;
[key: string]: unknown; [key: string]: unknown;
} }