diff --git a/apps/nextjs/src/app/[locale]/boards/(content)/_edit-actions.tsx b/apps/nextjs/src/app/[locale]/boards/(content)/_edit-actions.tsx index 29dbc8ac0..8b074d913 100644 --- a/apps/nextjs/src/app/[locale]/boards/(content)/_edit-actions.tsx +++ b/apps/nextjs/src/app/[locale]/boards/(content)/_edit-actions.tsx @@ -21,17 +21,9 @@ export default function BoardEditActions() { return ; } -const AddMenu = () => { - const { data: session } = useSession(); +export const InitialBoardAddAction = () => { const board = useRequiredBoard(); const { openModal: openItemSelectModal } = useModalAction(ItemSelectModal); - const { openModal: openAppSelectModal } = useModalAction(AppSelectModal); - const { openModal: openIntegrationSelectModal } = useModalAction(IntegrationSelectModal); - const { addContainer } = useContainerActions(); - const { createItem } = useItemActions(); - const tBoard = useI18n("board"); - const tIntegration = useI18n("integration"); - const tContainer = useI18n("section.container"); const pathname = usePathname(); const router = useRouter(); const searchParams = useSearchParams(); @@ -48,6 +40,21 @@ const AddMenu = () => { router.replace(query ? `${pathname}?${query}` : pathname, { scroll: false }); }, [board.id, openItemSelectModal, pathname, router, searchParams]); + return null; +}; + +const AddMenu = () => { + const { data: session } = useSession(); + const board = useRequiredBoard(); + const { openModal: openItemSelectModal } = useModalAction(ItemSelectModal); + const { openModal: openAppSelectModal } = useModalAction(AppSelectModal); + const { openModal: openIntegrationSelectModal } = useModalAction(IntegrationSelectModal); + const { addContainer } = useContainerActions(); + const { createItem } = useItemActions(); + const tBoard = useI18n("board"); + const tIntegration = useI18n("integration"); + const tContainer = useI18n("section.container"); + const handleSelectItem = () => { openItemSelectModal({ boardId: board.id }); }; diff --git a/apps/nextjs/src/app/[locale]/boards/(content)/_header-actions.tsx b/apps/nextjs/src/app/[locale]/boards/(content)/_header-actions.tsx index 41552ff34..c09102006 100644 --- a/apps/nextjs/src/app/[locale]/boards/(content)/_header-actions.tsx +++ b/apps/nextjs/src/app/[locale]/boards/(content)/_header-actions.tsx @@ -38,16 +38,26 @@ const loadBoardEditorAsync = async () => import("~/components/board/sections/container/container-menu"), ]); const BoardEditActions = dynamic(loadEditActionsAsync, { ssr: false }); +const InitialBoardAddAction = dynamic( + async () => { + const editActions = await loadEditActionsAsync(); + return editActions.InitialBoardAddAction; + }, + { ssr: false }, +); export const BoardContentEditAction = ({ demoReadOnly }: { demoReadOnly: boolean }) => { const [isEditMode] = useEditMode(); const board = useRequiredBoard(); + const searchParams = useSearchParams(); const { hasChangeAccess } = useBoardPermissions(board); + const shouldOpenInitialAdd = searchParams.get("add") === "true"; if (!hasChangeAccess) return null; return ( <> + {shouldOpenInitialAdd && } {isEditMode && } diff --git a/packages/forms-collection/src/board-create/board-create-form.tsx b/packages/forms-collection/src/board-create/board-create-form.tsx index e96a13597..828db7b23 100644 --- a/packages/forms-collection/src/board-create/board-create-form.tsx +++ b/packages/forms-collection/src/board-create/board-create-form.tsx @@ -49,8 +49,7 @@ export const BoardCreateForm = ({ onCancel }: BoardCreateFormProps) => { message: tBoard("action.create.notification.success.message", { name: values.name }), }); const name = encodeURIComponent(result.name); - const layoutId = encodeURIComponent(result.layoutId); - router.push(`/boards/${name}?layout=${layoutId}&edit=true&add=true`); + router.push(`/boards/${name}?add=true`); }, onError() { showErrorNotification({