fix: keep board creation changes persistent

This commit is contained in:
ajnart committed 2026-08-28 07:57:00 +02:00
1 parent 1c089dd906
commit e31dffb42d
4 files changed
+13 -30

No files matched your search

@@ -21,9 +21,17 @@ export default function BoardEditActions() {
return <AddMenu />;
}
export const InitialBoardAddAction = () => {
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 pathname = usePathname();
const router = useRouter();
const searchParams = useSearchParams();
@@ -40,21 +48,6 @@ export const InitialBoardAddAction = () => {
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 });
};
@@ -38,26 +38,16 @@ 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 && <InitialBoardAddAction />}
{isEditMode && <BoardEditActions />}
<EditModeMenu demoReadOnly={demoReadOnly} />
</>
@@ -49,7 +49,7 @@ export const BoardCreateForm = ({ onCancel }: BoardCreateFormProps) => {
message: tBoard("action.create.notification.success.message", { name: values.name }),
});
const name = encodeURIComponent(result.name);
router.push(`/boards/${name}?add=true`);
router.push(`/boards/${name}`);
},
onError() {
showErrorNotification({
+3 -3
View File
@@ -21,15 +21,15 @@ const ActionButtons = ({
loading,
form,
}: Pick<ModalFormFooterProps, "onCancel" | "submitLabel" | "cancelLabel" | "loading" | "form">) => {
const t = useI18n();
const t = useI18n("common.action");
return (
<>
<Button onClick={onCancel} variant="subtle" color="gray">
{cancelLabel ?? t("common.action.cancel")}
{cancelLabel ?? t("cancel")}
</Button>
<Button type="submit" form={form} loading={loading}>
{submitLabel ?? t("common.action.saveChanges")}
{submitLabel ?? t("saveChanges")}
</Button>
</>
);