Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b6fc27e44d | ||
|
|
9eafd4f7a7 | ||
|
|
71ffa5d1be |
@@ -111,9 +111,6 @@ export const LayoutSettingsContent = ({ board, form, isSaving, saveSettingsAsync
|
|||||||
|
|
||||||
const nextBreakpoint = getNextCustomBreakpoint(form.values.layouts);
|
const nextBreakpoint = getNextCustomBreakpoint(form.values.layouts);
|
||||||
const baseLayout = form.values.layouts.find((layout) => layout.role === "base");
|
const baseLayout = form.values.layouts.find((layout) => layout.role === "base");
|
||||||
const sortedLayouts = form.values.layouts
|
|
||||||
.map((layout, index) => ({ layout, index }))
|
|
||||||
.toSorted((entryA, entryB) => entryA.layout.breakpoint - entryB.layout.breakpoint);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<SectionCard title={tBoard("setting.section.layout.title")}>
|
<SectionCard title={tBoard("setting.section.layout.title")}>
|
||||||
@@ -129,25 +126,25 @@ export const LayoutSettingsContent = ({ board, form, isSaving, saveSettingsAsync
|
|||||||
disabled={nextBreakpoint === null || !baseLayout}
|
disabled={nextBreakpoint === null || !baseLayout}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
if (nextBreakpoint === null || !baseLayout) return;
|
if (nextBreakpoint === null || !baseLayout) return;
|
||||||
form.setFieldValue("layouts", [
|
const newLayout: FormValues["layouts"][number] = {
|
||||||
...form.values.layouts,
|
id: createId(),
|
||||||
{
|
name: tBoard("setting.section.layout.custom.defaultName"),
|
||||||
id: createId(),
|
columnCount: baseLayout.columnCount,
|
||||||
name: tBoard("setting.section.layout.custom.defaultName"),
|
leftGutterColumnCount: baseLayout.leftGutterColumnCount,
|
||||||
columnCount: baseLayout.columnCount,
|
rightGutterColumnCount: baseLayout.rightGutterColumnCount,
|
||||||
leftGutterColumnCount: baseLayout.leftGutterColumnCount,
|
breakpoint: nextBreakpoint,
|
||||||
rightGutterColumnCount: baseLayout.rightGutterColumnCount,
|
role: "custom",
|
||||||
breakpoint: nextBreakpoint,
|
};
|
||||||
role: "custom",
|
let insertionIndex = form.values.layouts.findIndex((layout) => layout.breakpoint > nextBreakpoint);
|
||||||
},
|
if (insertionIndex === -1) insertionIndex = form.values.layouts.length;
|
||||||
]);
|
form.insertListItem("layouts", newLayout, insertionIndex);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{tBoard("setting.section.layout.responsive.action.add")}
|
{tBoard("setting.section.layout.responsive.action.add")}
|
||||||
</Button>
|
</Button>
|
||||||
</Group>
|
</Group>
|
||||||
|
|
||||||
{sortedLayouts.map(({ layout, index }) => {
|
{form.values.layouts.map((layout, index) => {
|
||||||
const persistedLayout = board.layouts.find((candidate) => candidate.id === layout.id);
|
const persistedLayout = board.layouts.find((candidate) => candidate.id === layout.id);
|
||||||
const sourceLayout = persistedLayout ?? board.layouts.find((candidate) => candidate.role === "base");
|
const sourceLayout = persistedLayout ?? board.layouts.find((candidate) => candidate.role === "base");
|
||||||
const customBreakpoints = form.values.layouts
|
const customBreakpoints = form.values.layouts
|
||||||
|
|||||||
Reference in new issue
Block a user