From 0b82a8ae802ae7cea06fef080093abd05e537481 Mon Sep 17 00:00:00 2001 From: Abdulraoof Date: Sat, 8 Mar 2025 01:05:36 +0300 Subject: [PATCH] Fix initial values from props --- package.json | 1 + src/App.tsx | 17 ++++++++---- src/Page1.tsx | 27 ++++++++++++++++++ src/index.tsx | 9 +++++- src/lib/store/default.ts | 60 +++++++++++++++++++--------------------- 5 files changed, 76 insertions(+), 38 deletions(-) create mode 100644 src/Page1.tsx diff --git a/package.json b/package.json index e37058a3..3d960ef5 100644 --- a/package.json +++ b/package.json @@ -89,6 +89,7 @@ "prettier": "^3.5.1", "react": ">=19.0.0", "react-dom": "^19.0.0", + "react-router-dom": "^7.3.0", "rollup-plugin-peer-deps-external": "^2.2.4", "rrule": "^2.8.1", "ts-jest": "^29.2.5", diff --git a/src/App.tsx b/src/App.tsx index c5db2aea..497560ed 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -2,16 +2,23 @@ import { Scheduler } from "./lib"; import { EVENTS } from "./events"; import { useRef } from "react"; import { SchedulerRef } from "./lib/types"; +import { Link } from "react-router-dom"; function App() { const calendarRef = useRef(null); return ( - + <> +
+ Go to page 1 +
+ + + ); } diff --git a/src/Page1.tsx b/src/Page1.tsx new file mode 100644 index 00000000..3170f86f --- /dev/null +++ b/src/Page1.tsx @@ -0,0 +1,27 @@ +import { Scheduler } from "./lib"; +import { EVENTS } from "./events"; +import { useRef } from "react"; +import { SchedulerRef } from "./lib/types"; +import { Link } from "react-router-dom"; + +const events = EVENTS.slice(3, 6); + +function Page1() { + const calendarRef = useRef(null); + + return ( + <> +
+ Go to home +
+ + + + ); +} + +export default Page1; diff --git a/src/index.tsx b/src/index.tsx index 2ebc200c..c09cc6d7 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -2,13 +2,20 @@ import * as React from "react"; import { CssBaseline, ThemeProvider, createTheme } from "@mui/material"; import { createRoot } from "react-dom/client"; import App from "./App"; +import { BrowserRouter, Route, Routes } from "react-router-dom"; +import Page1 from "./Page1"; const root = createRoot(document.getElementById("root") as HTMLElement); root.render( - + + + } /> + } /> + + ); diff --git a/src/lib/store/default.ts b/src/lib/store/default.ts index fc06a39a..472cd4f9 100644 --- a/src/lib/store/default.ts +++ b/src/lib/store/default.ts @@ -88,19 +88,19 @@ const defaultViews = (props: Partial) => { export const defaultProps = (props: Partial) => { // We're pulling values out of props that we don't want to // pass on, so there are 'unused' ones here. - /* eslint-disable @typescript-eslint/no-unused-vars */ const { - month, - week, - day, translations, resourceFields, view, agenda, selectedDate, + resourceViewMode, + direction, + dialogMaxWidth, + hourFormat, ...otherProps } = props; - /* eslint-enable @typescript-eslint/no-unused-vars */ + const views = defaultViews(props); const defaultView = view || "week"; const initialView = views[defaultView] ? defaultView : getOneView(views); @@ -110,33 +110,29 @@ export const defaultProps = (props: Partial) => { resourceFields: Object.assign(defaultResourceFields, resourceFields), view: initialView, selectedDate: getTimeZonedDate(selectedDate || new Date(), props.timeZone), - ...Object.assign( - { - height: 600, - navigation: true, - disableViewNavigator: false, - events: [], - fields: [], - loading: undefined, - customEditor: undefined, - onConfirm: undefined, - onDelete: undefined, - viewerExtraComponent: undefined, - resources: [], - resourceHeaderComponent: undefined, - resourceViewMode: "default", - direction: "ltr", - dialogMaxWidth: "md", - locale: enUS, - deletable: true, - editable: true, - hourFormat: "12", - draggable: true, - agenda, - enableAgenda: typeof agenda === "undefined" || agenda, - }, - otherProps - ), + height: 600, + navigation: true, + disableViewNavigator: false, + events: [], + fields: [], + loading: undefined, + customEditor: undefined, + onConfirm: undefined, + onDelete: undefined, + viewerExtraComponent: undefined, + resources: [], + resourceHeaderComponent: undefined, + resourceViewMode: resourceViewMode || "default", + direction: direction || "ltr", + dialogMaxWidth: dialogMaxWidth || "md", + locale: enUS, + deletable: true, + editable: true, + hourFormat: hourFormat || "12", + draggable: true, + agenda, + enableAgenda: typeof agenda === "undefined" || agenda, + ...otherProps, }; };