init
This commit is contained in:
18
frontend/src/components/AppCard.tsx
Normal file
18
frontend/src/components/AppCard.tsx
Normal file
@@ -0,0 +1,18 @@
|
||||
import type { PropsWithChildren, ReactNode } from "react";
|
||||
|
||||
type AppCardProps = PropsWithChildren<{
|
||||
title: string;
|
||||
extra?: ReactNode;
|
||||
}>;
|
||||
|
||||
export function AppCard({ title, extra, children }: AppCardProps) {
|
||||
return (
|
||||
<section className="app-card">
|
||||
<header className="app-card__header">
|
||||
<h3>{title}</h3>
|
||||
{extra}
|
||||
</header>
|
||||
<div className="app-card__body">{children}</div>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
3
frontend/src/components/LoadingView.tsx
Normal file
3
frontend/src/components/LoadingView.tsx
Normal file
@@ -0,0 +1,3 @@
|
||||
export function LoadingView({ message = "Loading..." }: { message?: string }) {
|
||||
return <div className="loading-view">{message}</div>;
|
||||
}
|
||||
Reference in New Issue
Block a user