diff --git a/package.json b/package.json index 944e2f7..3b4333e 100644 --- a/package.json +++ b/package.json @@ -100,6 +100,7 @@ "normalize.css": "^8.0.0", "query-string": "^6.2.0", "react-helmet": "^5.2.0", + "react-jsonschema-form": "^1.2.0", "react-router": "^4.3.1", "react-router-dom": "^4.3.1" }, diff --git a/src/pages/EventCreatePage/EventCreatePage.scss b/src/pages/EventCreatePage/EventCreatePage.scss new file mode 100644 index 0000000..eebc0f1 --- /dev/null +++ b/src/pages/EventCreatePage/EventCreatePage.scss @@ -0,0 +1,3 @@ +.event-create-page { + width: inherit; +} diff --git a/src/pages/EventCreatePage/EventCreatePage.tsx b/src/pages/EventCreatePage/EventCreatePage.tsx new file mode 100644 index 0000000..58c14cd --- /dev/null +++ b/src/pages/EventCreatePage/EventCreatePage.tsx @@ -0,0 +1,55 @@ +import * as React from "react"; +import Helmet from "react-helmet"; +import "./EventCreatePage.scss"; +import { async } from "q"; +import { isAuthenticated } from "../../auth"; +import Form from "react-jsonschema-form"; + +export interface EventCreatePageProps {} +export interface EventCreatePageState { +} + + + +class EventCreatePage extends React.Component { + + render() { + const schema = { + title: "Uusi tapahtuma", + type: "object", + required: ["title"], + properties: { + title: {type: "string", title: "Name", default: "Name for the event"}, + location: {type: "string", title: "Location", defailt: "Location for the event"}, + multipleChoicesList: { + type: "array", + title: "Event type", + items: { + type: "string", + enum: [ + "Virallinen", + "Fuksit", + "Opinnot", + "Urheilu" + ] + }, + uniqueItems: true + }, + } + }; + return ( +
+ + + + Event Create Page +
+
+ ); + } +} + +export default EventCreatePage; diff --git a/src/pages/EventCreatePage/index.ts b/src/pages/EventCreatePage/index.ts new file mode 100644 index 0000000..4f19e34 --- /dev/null +++ b/src/pages/EventCreatePage/index.ts @@ -0,0 +1,2 @@ +import EventCreatePage from "./EventCreatePage"; +export default EventCreatePage; diff --git a/src/routes.tsx b/src/routes.tsx index 9ae1525..450df8b 100644 --- a/src/routes.tsx +++ b/src/routes.tsx @@ -14,6 +14,7 @@ import AdminCommonPage from "./pages/AdminCommonPage"; import AdminLoginPage from "./pages/AdminLoginPage"; import { getTokenCookie } from "./auth"; import AdminLogoutPage from "./pages/AdminLogoutPage"; +import EventCreatePage from "./pages/EventCreatePage"; const renderPage = (Page) => (props): JSX.Element => { return ; @@ -38,6 +39,7 @@ const adminLoginRoutes = [ const adminRoutes = [ { path: "/admin/events", page: AdminEventPage }, + { path: "/admin/events/create", page: EventCreatePage}, { path: "/admin/logout", page: AdminLogoutPage }, { path: "/admin", page: AdminFrontPage }, ];