♻️(frontend) stop setting a default title on doc creation

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.
This commit is contained in:
Anthony LC
2025-02-12 12:19:07 +01:00
committed by Anthony LC
parent d9ad397c94
commit c369419512
5 changed files with 13 additions and 19 deletions

View File

@@ -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

View File

@@ -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}
</Box>
</Tooltip>
</>

View File

@@ -6,14 +6,9 @@ import { Doc } from '../types';
import { KEY_LIST_DOC } from './useDocs';
export type CreateDocParam = Pick<Doc, 'title'>;
export const createDoc = async ({ title }: CreateDocParam): Promise<Doc> => {
export const createDoc = async (): Promise<Doc> => {
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<Doc, APIError, CreateDocParam>({
return useMutation<Doc, APIError>({
mutationFn: createDoc,
onSuccess: (data) => {
void queryClient.resetQueries({

View File

@@ -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 (
<Box $direction="row" $gap={spacings.sm}>
@@ -61,7 +62,7 @@ export const SimpleDocItem = ({
$weight="500"
$css={ItemTextCss}
>
{doc.title}
{doc.title || untitledDocument}
</Text>
{(!isDesktop || showAccesses) && (
<Box

View File

@@ -31,7 +31,7 @@ export const LeftPanelHeader = ({ children }: PropsWithChildren) => {
};
const createNewDoc = () => {
createDoc({ title: t('Untitled document') });
createDoc();
};
return (