diff --git a/src/components/AdminSidebar/AdminSidebar.tsx b/src/components/AdminSidebar/AdminSidebar.tsx index 04fcd75..ef84fe7 100644 --- a/src/components/AdminSidebar/AdminSidebar.tsx +++ b/src/components/AdminSidebar/AdminSidebar.tsx @@ -16,7 +16,7 @@ class AdminSidebar extends React.Component Events Feed Signup forms - Files + Files Logout ); diff --git a/src/models/Event.ts b/src/models/Event.ts index 81e9bd8..3ce1b27 100644 --- a/src/models/Event.ts +++ b/src/models/Event.ts @@ -17,9 +17,7 @@ export interface Event { end_time: string; image: string; tags: Tag[]; - tag_id?: number[]; visible: boolean; - signup_id: number[]; signupForm: SignupForm[]; } diff --git a/src/models/Feed.ts b/src/models/Feed.ts index dc291d3..633381d 100644 --- a/src/models/Feed.ts +++ b/src/models/Feed.ts @@ -13,7 +13,6 @@ export interface Post { content_en: string; publish_time: string; autohide: string; - tag_id: number[]; tags: number[]; visible: boolean; } diff --git a/src/pages/admin/EventCreatePage.tsx b/src/pages/admin/EventCreatePage.tsx index d2db532..e05d1ba 100644 --- a/src/pages/admin/EventCreatePage.tsx +++ b/src/pages/admin/EventCreatePage.tsx @@ -52,8 +52,8 @@ class EventCreatePage extends React.Component { try { const data = await getEvent(id, true); - data.tags = data.tag_id as any; - data.signupForm = data.signup_id as any; + data.tags = (data.tags as any).map(inst => inst.id); + data.signupForm = (data.signupForm as any).map(inst => inst.id); this.setState({ formData: data, }); @@ -98,24 +98,33 @@ class EventCreatePage extends React.Component inst.id); + // resp.signupForm = (resp.signupForm as any).map(inst => inst.id); + resp.tags = data.formData.tags; + resp.signupForm = data.formData.signupForm; this.setState({ formData: resp, statusMessage: "Event created successfully", }); } else { const resp = await updateEvent(payload); - resp.tags = resp.tag_id as any; - resp.signupForm = resp.signup_id as any; + // TODO: Backend return old data because of Prefetch (used for filtering invisble signupForms from GET) + // Copy from old state instead... + // resp.tags = (resp.tags as any).map(inst => inst.id); + // resp.signupForm = (resp.signupForm as any).map(inst => inst.id); + resp.tags = data.formData.tags; + resp.signupForm = data.formData.signupForm; this.setState({ formData: resp, - statusMessage: "Event updated successfully.", + statusMessage: "Event updated successfully", }); } } catch (err) { diff --git a/src/pages/admin/FeedCreatePage.tsx b/src/pages/admin/FeedCreatePage.tsx index 070c2b8..401aa85 100644 --- a/src/pages/admin/FeedCreatePage.tsx +++ b/src/pages/admin/FeedCreatePage.tsx @@ -47,7 +47,7 @@ class FeedCreatePage extends React.Component { try { const data = await getPost(id); - data.tags = data.tag_id; + // data.tags = data.tag_id; this.setState({ formData: data, }); @@ -84,14 +84,14 @@ class FeedCreatePage extends React.Component { let obj = {}; @@ -52,7 +53,7 @@ const questionToValidationSchema = (question: Question) => { obj = { type: "string", title: question.name, - pattern: question.options.map(x => `^${x}$`).join("|"), + pattern: question.options.map(x => `^${escapeRegExp(x)}$`).join("|"), enum: question.options, } } @@ -65,7 +66,7 @@ const questionToValidationSchema = (question: Question) => { items: { type: "string", enum: question.options, - pattern: question.options.map(x => `^${x}$`).join("|"), + pattern: question.options.map(x => `^${escapeRegExp(x)}$`).join("|"), }, } }