Skip to content

Commit

Permalink
Started Save implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
elektronaut committed Apr 29, 2023
1 parent b1b34ce commit dd87488
Showing 5 changed files with 68 additions and 26 deletions.
38 changes: 19 additions & 19 deletions app/assets/builds/pages_core/admin-dist.js

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions app/assets/builds/pages_core/admin-dist.js.map

Large diffs are not rendered by default.

22 changes: 19 additions & 3 deletions app/javascript/components/PageForm.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
import React, { useEffect, useState, useRef } from "react";

import { putJson, postJson } from "../lib/request";
import { Locale, PageResource, TemplateConfig } from "../types";
import useToastStore from "../stores/useToastStore";
import usePage, { Author, StatusLabels } from "./PageForm/usePage";
import pageParams from "./PageForm/pageParams";
import Content from "./PageForm/Content";
import Metadata from "./PageForm/Metadata";
import Form from "./PageForm/Form";
@@ -60,10 +63,10 @@ export default function PageForm(props: PageFormProps) {
});

const { page, locale, locales, templates, templateConfig } = state;

const tabs = tabsList(templates, templateConfig);

const [tab, setTab] = useState(initialTab(tabs));
const errorToast = useToastStore((state) => state.error);
const noticeToast = useToastStore((state) => state.notice);

useEffect(() => {
const pageUrl = `/admin/${locale}/pages/` +
@@ -85,7 +88,20 @@ export default function PageForm(props: PageFormProps) {

const handleSubmit = (evt: Event) => {
evt.preventDefault();
console.log("submit");
let method = postJson;
let url = `/admin/${locale}/pages.json`;
const data = { page: pageParams(page) };

if (page.id) {
method = putJson;
url = `/admin/${locale}/pages/${page.id}.json`;
}

method(url, data).then(() => {
noticeToast("Your changes were saved");
}).catch(() => {
errorToast("An error occured while saving your changes.");
});
};

return (
2 changes: 2 additions & 0 deletions app/javascript/components/PageForm/Options.tsx
Original file line number Diff line number Diff line change
@@ -95,6 +95,8 @@ export default function Options(props: OptionsProps) {
</label>
</LabelledField>

TODO: Categories

<LabelledField htmlFor="page_template"
label="Template"
errors={errorsOn(page, "template")}>
24 changes: 24 additions & 0 deletions app/javascript/components/PageForm/pageParams.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import { PageResource } from "../../types";

export default function pageParams(page: PageResource) {
// meta_image_id
// page_images
// page_files
return {
...page.blocks,
starts_at: page.starts_at,
ends_at: page.ends_at,
all_day: page.all_day,
status: page.status,
published_at: page.published_at,
pinned: page.pinned,
template: page.template,
unique_name: page.unique_name,
feed_enabled: page.feed_enabled,
news_page: page.news_page,
user_id: page.user_id,
redirect_to: page.redirect_to,
serialized_tags: JSON.stringify(page.enabled_tags),
path_segment: page.path_segment
};
}

0 comments on commit dd87488

Please sign in to comment.