From 8838ff10f40a5cd6c739fddd4a3dcbb156849c30 Mon Sep 17 00:00:00 2001 From: Vishesh 'ironeagle' Bangotra Date: Sat, 15 Nov 2025 04:12:24 +0530 Subject: [PATCH] changes for UX of opening and closing editor --- src/blog/Blog.tsx | 12 +++++++----- src/blog/components/Article/ArticleEditor.tsx | 1 - src/blog/types/props.ts | 7 ++----- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/blog/Blog.tsx b/src/blog/Blog.tsx index 563ed96..61e3151 100644 --- a/src/blog/Blog.tsx +++ b/src/blog/Blog.tsx @@ -31,9 +31,6 @@ export default function Blog(props: { disableCustomTheme?: boolean }) { setSelectedArticle(index); window.scrollTo({ top: 0, behavior: 'smooth' }); }; - - const handleBack = () => setSelectedArticle(null); - const handleShowLogin = () => { setShowLogin(true); setShowRegister(false); @@ -62,6 +59,11 @@ export default function Blog(props: { disableCustomTheme?: boolean }) { const handleHideEditor = () => { setShowEditor(false); }; + const handleArticleViewBack = () => setSelectedArticle(null); + const handleArticleEditorBack = () => { + handleHideEditor() + window.scrollTo({ top: 0, behavior: 'smooth' }); + }; // derive a single source of truth for view const view: View = React.useMemo(() => { @@ -95,9 +97,9 @@ export default function Blog(props: { disableCustomTheme?: boolean }) { ); case 'article': if (selectedArticle == null || !articles[selectedArticle]) return null; - return ; + return ; case 'editor': - return + return case 'home': default: return ( diff --git a/src/blog/components/Article/ArticleEditor.tsx b/src/blog/components/Article/ArticleEditor.tsx index a53cac4..b562751 100644 --- a/src/blog/components/Article/ArticleEditor.tsx +++ b/src/blog/components/Article/ArticleEditor.tsx @@ -27,7 +27,6 @@ const CoverImage = styled('img')({ export default function ArticleView({ article, onBack, - author, }: ArticleEditorProps) { const [title, setTitle] = React.useState(article?.title ?? ""); diff --git a/src/blog/types/props.ts b/src/blog/types/props.ts index 2e43e3e..cafaf2b 100644 --- a/src/blog/types/props.ts +++ b/src/blog/types/props.ts @@ -1,6 +1,4 @@ -import {ArticleModel, AuthorModel} from "./models"; -import {styled} from "@mui/material/styles"; -import Card from "@mui/material/Card"; +import { ArticleModel } from "./models"; export interface LatestProps { articles: ArticleModel[]; @@ -14,9 +12,8 @@ export interface ArticleProps { } export interface ArticleEditorProps { - article: ArticleModel; + article?: ArticleModel; onBack: () => void; - author: AuthorModel; } export interface ArticleMetaProps {