وبلاگ: صفحه تمامعرض «نوشتن مقاله» — محیط نوشتن متمرکز برای ادمین
- /admin/write (مقاله جدید) و /admin/write/:id (ویرایش) — صفحه کامل بدون چرخه سایت: نوار بالا (بازگشت، وضعیت ذخیره، ذخیره، دیدن در سایت، حذف)، عنوان بزرگ، تصویر شاخص، ویرایشگر TipTap تمامارتفاع و بخش جزئیات انتشار (چکیده، دسته، تاریخ، زمان مطالعه، slug) - ذخیره خودکار با debounce + flush هنگام خروج؛ اولین ذخیره مقاله را منتشر میکند و مسیر به /admin/write/:id تغییر میکند - قلمویژه مقالهها (مداد روی کارت) ادمین را به همین صفحه میبرد (editHref روی EditableItem)؛ لینکهای data-admin-link در حالت ویرایش کار میکنند - رفع: create-on-unmount حذف شد (با draft قدیمی مقاله سرگردانی میساخت) — unmount فقط برای مقاله ساختهشده PATCH میزند
This commit is contained in:
@@ -19,6 +19,7 @@ import { SiteProvider, useSiteData } from './api';
|
||||
import { AdminProvider, useAdmin } from './admin/AdminContext';
|
||||
import { AdminBar } from './admin/AdminBar';
|
||||
import { AdminLoginPage } from './admin/AdminLoginPage';
|
||||
import { ArticleWritePage } from './admin/ArticleWritePage';
|
||||
|
||||
function ScrollToTop() {
|
||||
const { pathname } = useLocation();
|
||||
@@ -41,6 +42,8 @@ function AnimatedRoutes() {
|
||||
|
||||
<Routes location={location}>
|
||||
<Route path="/admin/login" element={<AdminLoginPage />} />
|
||||
<Route path="/admin/write" element={<ArticleWritePage />} />
|
||||
<Route path="/admin/write/:id" element={<ArticleWritePage />} />
|
||||
<Route path="/" element={<Home />} />
|
||||
<Route path="/about" element={<About />} />
|
||||
<Route path="/services" element={<ServicesPage />} />
|
||||
@@ -61,15 +64,15 @@ function AnimatedRoutes() {
|
||||
function AppChrome() {
|
||||
const { pathname } = useLocation();
|
||||
const { isAuthenticated } = useAdmin();
|
||||
const isLoginPage = pathname === '/admin/login';
|
||||
const isAdminPage = pathname.startsWith('/admin');
|
||||
|
||||
return (
|
||||
<>
|
||||
{!isLoginPage && <Header />}
|
||||
{!isAdminPage && <Header />}
|
||||
<AnimatedRoutes />
|
||||
{!isLoginPage && <Footer />}
|
||||
{!isLoginPage && <FloatingContact />}
|
||||
{isAuthenticated && <AdminBar />}
|
||||
{!isAdminPage && <Footer />}
|
||||
{!isAdminPage && <FloatingContact />}
|
||||
{isAuthenticated && !isAdminPage && <AdminBar />}
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user