From c369419512a308ce96877b292096af11820bcf64 Mon Sep 17 00:00:00 2001 From: Anthony LC Date: Wed, 12 Feb 2025 12:19:07 +0100 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F(frontend)=20stop=20setting?= =?UTF-8?q?=20a=20default=20title=20on=20doc=20creation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We were setting a default title to our document during creation, but we should not do that, it created lot of similar titles, lot of documents will show up during search. --- CHANGELOG.md | 2 ++ .../docs/doc-header/components/DocTitle.tsx | 14 +++++--------- .../docs/doc-management/api/useCreateDoc.tsx | 9 ++------- .../docs/docs-grid/components/SimpleDocItem.tsx | 5 +++-- .../left-panel/components/LeftPanelHeader.tsx | 2 +- 5 files changed, 13 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 110208f3..5ffda055 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,8 @@ and this project adheres to ## Changed - 📝(doc) minor README.md formatting and wording enhancements +- ♻️Stop setting a default title on doc creation #634 + ## [2.2.0] - 2025-02-10 diff --git a/src/frontend/apps/impress/src/features/docs/doc-header/components/DocTitle.tsx b/src/frontend/apps/impress/src/features/docs/doc-header/components/DocTitle.tsx index 37e2fdf9..9290bde5 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-header/components/DocTitle.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-header/components/DocTitle.tsx @@ -57,16 +57,13 @@ const DocTitleInput = ({ doc }: DocTitleProps) => { const [titleDisplay, setTitleDisplay] = useState(doc.title); const { toast } = useToastProvider(); const { untitledDocument } = useTrans(); - const isUntitled = titleDisplay === untitledDocument; const { broadcast } = useBroadcastStore(); const { mutate: updateDoc } = useUpdateDoc({ listInvalideQueries: [KEY_DOC, KEY_LIST_DOC], onSuccess(data) { - if (data.title !== untitledDocument) { - toast(t('Document title updated successfully'), VariantType.SUCCESS); - } + toast(t('Document title updated successfully'), VariantType.SUCCESS); // Broadcast to every user connected to the document broadcast(`${KEY_DOC}-${data.id}`); @@ -80,8 +77,7 @@ const DocTitleInput = ({ doc }: DocTitleProps) => { // When blank we set to untitled if (!sanitizedTitle) { - sanitizedTitle = untitledDocument; - setTitleDisplay(sanitizedTitle); + setTitleDisplay(''); } // If mutation we update @@ -90,7 +86,7 @@ const DocTitleInput = ({ doc }: DocTitleProps) => { updateDoc({ id: doc.id, title: sanitizedTitle }); } }, - [doc.id, doc.title, untitledDocument, updateDoc], + [doc.id, doc.title, updateDoc], ); const handleKeyDown = (e: React.KeyboardEvent) => { @@ -111,7 +107,7 @@ const DocTitleInput = ({ doc }: DocTitleProps) => { as="span" role="textbox" contentEditable - defaultValue={isUntitled ? undefined : titleDisplay} + defaultValue={titleDisplay || undefined} onKeyDownCapture={handleKeyDown} suppressContentEditableWarning={true} aria-label="doc title input" @@ -135,7 +131,7 @@ const DocTitleInput = ({ doc }: DocTitleProps) => { outline: none; `} > - {isUntitled ? '' : titleDisplay} + {titleDisplay} diff --git a/src/frontend/apps/impress/src/features/docs/doc-management/api/useCreateDoc.tsx b/src/frontend/apps/impress/src/features/docs/doc-management/api/useCreateDoc.tsx index 78abddbe..46c475d4 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-management/api/useCreateDoc.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-management/api/useCreateDoc.tsx @@ -6,14 +6,9 @@ import { Doc } from '../types'; import { KEY_LIST_DOC } from './useDocs'; -export type CreateDocParam = Pick; - -export const createDoc = async ({ title }: CreateDocParam): Promise => { +export const createDoc = async (): Promise => { const response = await fetchAPI(`documents/`, { method: 'POST', - body: JSON.stringify({ - title, - }), }); if (!response.ok) { @@ -29,7 +24,7 @@ interface CreateDocProps { export function useCreateDoc({ onSuccess }: CreateDocProps) { const queryClient = useQueryClient(); - return useMutation({ + return useMutation({ mutationFn: createDoc, onSuccess: (data) => { void queryClient.resetQueries({ diff --git a/src/frontend/apps/impress/src/features/docs/docs-grid/components/SimpleDocItem.tsx b/src/frontend/apps/impress/src/features/docs/docs-grid/components/SimpleDocItem.tsx index d6dfb3b3..b8136dc4 100644 --- a/src/frontend/apps/impress/src/features/docs/docs-grid/components/SimpleDocItem.tsx +++ b/src/frontend/apps/impress/src/features/docs/docs-grid/components/SimpleDocItem.tsx @@ -4,7 +4,7 @@ import { css } from 'styled-components'; import { Box, Text } from '@/components'; import { useCunninghamTheme } from '@/cunningham'; -import { Doc } from '@/features/docs/doc-management'; +import { Doc, useTrans } from '@/features/docs/doc-management'; import { useResponsiveStore } from '@/stores'; import PinnedDocumentIcon from '../assets/pinned-document.svg'; @@ -35,6 +35,7 @@ export const SimpleDocItem = ({ const { spacingsTokens } = useCunninghamTheme(); const { isDesktop } = useResponsiveStore(); const spacings = spacingsTokens(); + const { untitledDocument } = useTrans(); return ( @@ -61,7 +62,7 @@ export const SimpleDocItem = ({ $weight="500" $css={ItemTextCss} > - {doc.title} + {doc.title || untitledDocument} {(!isDesktop || showAccesses) && ( { }; const createNewDoc = () => { - createDoc({ title: t('Untitled document') }); + createDoc(); }; return (