@ankjs/react-ui 1.0.23 → 1.0.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,9 +1,11 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
4
  Object.defineProperty(exports, '__esModule', { value: true });
4
5
 
5
6
  var jsxRuntime = require('react/jsx-runtime');
6
7
  var react = require('react');
8
+ var reactRouterDom = require('react-router-dom');
7
9
 
8
10
  /**
9
11
  * Copyright (c) [2026] [ankjs]
@@ -214,6 +216,28 @@ const Button = (props) => {
214
216
  }, disabled: disabled, children: btnName ? btnName : children }));
215
217
  };
216
218
 
219
+ const AuthGuard = ({ children = {}, isAllowed = false, redirectTo = "/login" }) => {
220
+ const location = reactRouterDom.useLocation();
221
+ if (!isAllowed) {
222
+ return jsxRuntime.jsx(reactRouterDom.Navigate, { to: redirectTo, state: { from: location }, replace: true });
223
+ }
224
+ return jsxRuntime.jsx(jsxRuntime.Fragment, { children: children });
225
+ };
226
+ const BrowserRouter = ({ routes, authStatus, loginPath = "/login", globalFallback = jsxRuntime.jsx("div", { children: "Loading..." }) }) => {
227
+ const router = react.useMemo(() => {
228
+ const routesData = routes.map((route) => {
229
+ const { path, importFunc, element, fallback, scrollType = "same-area", protectRouter = false } = route;
230
+ // যদি importFunc থাকে তবে lazy load করবে, নতুবা সরাসরি element ব্যবহার করবে
231
+ const ComponentToRender = importFunc ? react.lazy(importFunc) : null;
232
+ const finalElement = (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(reactRouterDom.ScrollRestoration, { getKey: (location) => scrollType === "reset" ? location.key : "app-global-scroll" }), jsxRuntime.jsx(react.Suspense, { fallback: fallback || globalFallback, children: protectRouter ? (jsxRuntime.jsx(AuthGuard, { isAllowed: authStatus, redirectTo: loginPath, children: element || (ComponentToRender && jsxRuntime.jsx(ComponentToRender, {})) })) : (element || (ComponentToRender && jsxRuntime.jsx(ComponentToRender, {}))) })] }));
233
+ return { path, element: finalElement };
234
+ });
235
+ return reactRouterDom.createBrowserRouter(routesData);
236
+ }, [routes, authStatus, loginPath, globalFallback]);
237
+ return jsxRuntime.jsx(reactRouterDom.RouterProvider, { router: router });
238
+ };
239
+
240
+ exports.BrowserRouter = BrowserRouter;
217
241
  exports.Button = Button;
218
242
  exports.default = AnkThemeProvider;
219
243
  exports.useThemeColors = useThemeColors;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/contexts/AnkThemeContext.ts","../src/hook/useSystemTheme.ts","../src/constants/colors.ts","../src/hook/useThemeColors.ts","../src/providers/MainUiView.tsx","../src/providers/AnkThemeProvider.tsx","../src/components/button/Button.tsx"],"sourcesContent":[null,null,null,null,null,null,null],"names":["createContext","useState","useEffect","defaultLight","defaultDark","useContext","light","dark","_jsx","useCallback","useMemo"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/contexts/AnkThemeContext.ts","../src/hook/useSystemTheme.ts","../src/constants/colors.ts","../src/hook/useThemeColors.ts","../src/providers/MainUiView.tsx","../src/providers/AnkThemeProvider.tsx","../src/components/button/Button.tsx","../src/navigation/BrowserRouter.tsx"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":["createContext","useState","useEffect","defaultLight","defaultDark","useContext","light","dark","_jsx","useCallback","useMemo","useLocation","Navigate","_Fragment","lazy","_jsxs","ScrollRestoration","Suspense","createBrowserRouter","RouterProvider"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,3 +2,4 @@ import AnkThemeProvider from './providers/AnkThemeProvider';
2
2
  export default AnkThemeProvider;
3
3
  export * from './components/index';
4
4
  export * from './hook/index';
5
+ export * from './navigation/index';
package/dist/index.esm.js CHANGED
@@ -1,5 +1,7 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { createContext, useState, useEffect, useContext, useCallback, useMemo } from 'react';
1
+ 'use client';
2
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
+ import { createContext, useState, useEffect, useContext, useCallback, useMemo, lazy, Suspense } from 'react';
4
+ import { ScrollRestoration, createBrowserRouter, RouterProvider, useLocation, Navigate } from 'react-router-dom';
3
5
 
4
6
  /**
5
7
  * Copyright (c) [2026] [ankjs]
@@ -210,5 +212,26 @@ const Button = (props) => {
210
212
  }, disabled: disabled, children: btnName ? btnName : children }));
211
213
  };
212
214
 
213
- export { Button, AnkThemeProvider as default, useThemeColors };
215
+ const AuthGuard = ({ children = {}, isAllowed = false, redirectTo = "/login" }) => {
216
+ const location = useLocation();
217
+ if (!isAllowed) {
218
+ return jsx(Navigate, { to: redirectTo, state: { from: location }, replace: true });
219
+ }
220
+ return jsx(Fragment, { children: children });
221
+ };
222
+ const BrowserRouter = ({ routes, authStatus, loginPath = "/login", globalFallback = jsx("div", { children: "Loading..." }) }) => {
223
+ const router = useMemo(() => {
224
+ const routesData = routes.map((route) => {
225
+ const { path, importFunc, element, fallback, scrollType = "same-area", protectRouter = false } = route;
226
+ // যদি importFunc থাকে তবে lazy load করবে, নতুবা সরাসরি element ব্যবহার করবে
227
+ const ComponentToRender = importFunc ? lazy(importFunc) : null;
228
+ const finalElement = (jsxs(Fragment, { children: [jsx(ScrollRestoration, { getKey: (location) => scrollType === "reset" ? location.key : "app-global-scroll" }), jsx(Suspense, { fallback: fallback || globalFallback, children: protectRouter ? (jsx(AuthGuard, { isAllowed: authStatus, redirectTo: loginPath, children: element || (ComponentToRender && jsx(ComponentToRender, {})) })) : (element || (ComponentToRender && jsx(ComponentToRender, {}))) })] }));
229
+ return { path, element: finalElement };
230
+ });
231
+ return createBrowserRouter(routesData);
232
+ }, [routes, authStatus, loginPath, globalFallback]);
233
+ return jsx(RouterProvider, { router: router });
234
+ };
235
+
236
+ export { BrowserRouter, Button, AnkThemeProvider as default, useThemeColors };
214
237
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/contexts/AnkThemeContext.ts","../src/hook/useSystemTheme.ts","../src/constants/colors.ts","../src/hook/useThemeColors.ts","../src/providers/MainUiView.tsx","../src/providers/AnkThemeProvider.tsx","../src/components/button/Button.tsx"],"sourcesContent":[null,null,null,null,null,null,null],"names":["defaultLight","defaultDark","light","dark","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/contexts/AnkThemeContext.ts","../src/hook/useSystemTheme.ts","../src/constants/colors.ts","../src/hook/useThemeColors.ts","../src/providers/MainUiView.tsx","../src/providers/AnkThemeProvider.tsx","../src/components/button/Button.tsx","../src/navigation/BrowserRouter.tsx"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":["defaultLight","defaultDark","light","dark","_jsx","_Fragment","_jsxs"],"mappings":"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"}
@@ -0,0 +1,112 @@
1
+ import React from 'react';
2
+ import type { BrowserRouterProps } from '../types/browserRouterTypes';
3
+ declare const BrowserRouter: React.FC<BrowserRouterProps>;
4
+ export default BrowserRouter;
5
+ /***** use
6
+ *
7
+ *
8
+ *
9
+
10
+ import { BrowserRouter } from 'your-npm-package';
11
+
12
+ const routes = [
13
+ {
14
+ path: "/",
15
+ // ইউজার নিজের প্রজেক্ট থেকে ইমপোর্ট ফাংশন দিচ্ছে
16
+ importFunc: () => import("./pages/Home"),
17
+ protectRouter: false
18
+ },
19
+ {
20
+ path: "/dashboard",
21
+ // অথবা সরাসরি কম্পোনেন্ট দিচ্ছে
22
+ element: <Dashboard />,
23
+ protectRouter: true,
24
+ scrollType: "reset"
25
+ }
26
+ ];
27
+
28
+ // App.tsx
29
+ <BrowserRouter routes={routes} authStatus={isLoggedIn} /> />
30
+
31
+ *
32
+ */
33
+ /**
34
+ const AuthGuard = (props: RouterProtectProps) => {
35
+ const {
36
+ children = {},
37
+ isAllowed = false,
38
+ redirectTo = "/login"
39
+ } = props;
40
+
41
+ const location = useLocation();
42
+
43
+ if (!isAllowed) {
44
+ // Redirect to login, but keep the current location in state
45
+ // so we can redirect back after login.
46
+ return <Navigate to={redirectTo} state={{ from: location }} replace />;
47
+ }
48
+ return children && children
49
+ };
50
+ The Enhanced BrowserRouter
51
+
52
+
53
+ const BrowserRouter = (props: BrowserRouterProps) => {
54
+ const {
55
+ routes = [],
56
+ authStatus = false
57
+ } = props;
58
+
59
+
60
+ const router = useMemo(() => {
61
+ const routesData = routes.map((route) => {
62
+ const {
63
+ path,
64
+ dir = "pages", // Folder name
65
+ fileName, // File name
66
+ fallback = <div className="loader">Loading...</div>,
67
+ scrollType = "same-area",
68
+ protectRouter = false,
69
+ component = {}
70
+ } = route;
71
+
72
+
73
+ // Dynamic Lazy Import
74
+ const LazyComponent = lazy(() => import(`../${dir}/${fileName}.jsx`));
75
+
76
+
77
+ const element = (
78
+ <>
79
+ <ScrollRestoration
80
+ getKey={(location) => {
81
+ // 'reset' forces a new scroll top, 'same-area' preserves it
82
+ return scrollType === "reset" ? location.key : "app-global-scroll";
83
+ }}
84
+ />
85
+ <Suspense fallback={fallback}>
86
+ {protectRouter ? (
87
+ <div>
88
+ <AuthGuard isAllowed={authStatus}>
89
+ {component}
90
+ </AuthGuard>
91
+ </div>
92
+ ) : (
93
+ <div>
94
+ {component && component}
95
+ </div>
96
+ )}
97
+ </Suspense>
98
+ </>
99
+ );
100
+
101
+ return { path, element };
102
+ });
103
+
104
+ return createBrowserRouter(routesData);
105
+ }, [routes, authStatus]);
106
+
107
+ return <RouterProvider router={router} />;
108
+ };
109
+
110
+ export default BrowserRouter;
111
+
112
+ */
@@ -0,0 +1,2 @@
1
+ import BrowserRouter from './BrowserRouter';
2
+ export { BrowserRouter };
@@ -0,0 +1,22 @@
1
+ import { ReactNode, ComponentType } from 'react';
2
+ export interface RouteConfig {
3
+ path: string;
4
+ importFunc?: () => Promise<{
5
+ default: ComponentType<any>;
6
+ }>;
7
+ element?: ReactNode;
8
+ fallback?: ReactNode;
9
+ scrollType?: "reset" | "same-area";
10
+ protectRouter?: boolean;
11
+ }
12
+ export interface BrowserRouterProps {
13
+ routes: RouteConfig[];
14
+ authStatus: boolean;
15
+ loginPath?: string;
16
+ globalFallback?: ReactNode;
17
+ }
18
+ export type RouterProtectProps = {
19
+ children: ReactNode;
20
+ redirectTo: string;
21
+ isAllowed: boolean;
22
+ };
@@ -1,6 +1,14 @@
1
- import React from 'react';
1
+ import { ReactNode, ChangeEvent, CSSProperties } from 'react';
2
2
  export interface InputProps {
3
+ name?: string;
4
+ label?: string;
3
5
  placeholder?: string;
4
6
  value?: string;
5
- onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
7
+ onChange?: (val: string) => void;
8
+ onChangeEvent?: (e?: ChangeEvent<HTMLInputElement>) => void;
9
+ error?: string;
10
+ disabled?: boolean;
11
+ required?: string;
12
+ children?: ReactNode;
13
+ style?: CSSProperties;
6
14
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ankjs/react-ui",
3
- "version": "1.0.23",
3
+ "version": "1.0.24",
4
4
  "description": "A simple React UI Library",
5
5
  "main": "index.js",
6
6
  "module": "dist/index.esm.js",
@@ -46,5 +46,8 @@
46
46
  "rollup-plugin-typescript2": "^0.36.0",
47
47
  "tslib": "^2.8.1",
48
48
  "typescript": "^6.0.2"
49
+ },
50
+ "dependencies": {
51
+ "react-router-dom": "^7.14.1"
49
52
  }
50
53
  }
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { InputProps } from '../../types/inputTypes'
3
- import useThemeColors from '../../hook/useThemeColors';
3
+ import useThemeColors from '../../hook/useThemeColors';
4
4
 
5
5
 
6
6
 
@@ -13,7 +13,7 @@ const Input = (props: InputProps) => {
13
13
  placeholder = "",
14
14
  value = "",
15
15
  onChange = (val) => { },
16
- onChangeEvent,
16
+ onChangeEvent = (e) => { },
17
17
  error = "",
18
18
  disabled = false,
19
19
  required = false,
@@ -105,10 +105,9 @@ const Input = (props: InputProps) => {
105
105
  <input
106
106
  style={inputStyle}
107
107
  value={value}
108
- onChangeEvent={onChangeEvent}
109
108
  onChange={(e) => {
110
- let val = e.target.value;
111
- onChange(val);
109
+ onChange(e.target.value);
110
+ onChangeEvent(e);
112
111
  }}
113
112
  disabled={disabled}
114
113
  />
package/src/index.ts CHANGED
@@ -8,4 +8,5 @@ export default AnkThemeProvider;
8
8
 
9
9
 
10
10
  export * from './components/index';
11
- export * from './hook/index';
11
+ export * from './hook/index';
12
+ export * from './navigation/index';
@@ -0,0 +1,237 @@
1
+
2
+ import React, { lazy, Suspense, useMemo } from 'react';
3
+ import {
4
+ createBrowserRouter,
5
+ RouterProvider,
6
+ Navigate,
7
+ useLocation,
8
+ ScrollRestoration
9
+ } from 'react-router-dom';
10
+
11
+ import type { BrowserRouterProps, RouterProtectProps } from '../types/browserRouterTypes'
12
+
13
+
14
+
15
+
16
+
17
+ const AuthGuard: React.FC<RouterProtectProps> = ({
18
+ children = {},
19
+ isAllowed = false,
20
+ redirectTo = "/login"
21
+ }) => {
22
+ const location = useLocation();
23
+
24
+
25
+ if (!isAllowed) {
26
+ return <Navigate to={redirectTo} state={{ from: location }} replace />;
27
+ }
28
+ return <>{children}</>;
29
+ };
30
+
31
+ const BrowserRouter: React.FC<BrowserRouterProps> = ({
32
+ routes,
33
+ authStatus,
34
+ loginPath = "/login",
35
+ globalFallback = <div>Loading...</div>
36
+ }) => {
37
+
38
+ const router = useMemo(() => {
39
+ const routesData = routes.map((route) => {
40
+ const {
41
+ path,
42
+ importFunc,
43
+ element,
44
+ fallback,
45
+ scrollType = "same-area",
46
+ protectRouter = false
47
+ } = route;
48
+
49
+ // যদি importFunc থাকে তবে lazy load করবে, নতুবা সরাসরি element ব্যবহার করবে
50
+ const ComponentToRender = importFunc ? lazy(importFunc) : null;
51
+
52
+ const finalElement = (
53
+ <>
54
+ <ScrollRestoration
55
+ getKey={(location) =>
56
+ scrollType === "reset" ? location.key : "app-global-scroll"
57
+ }
58
+ />
59
+ <Suspense fallback={fallback || globalFallback}>
60
+ {protectRouter ? (
61
+ <AuthGuard isAllowed={authStatus} redirectTo={loginPath}>
62
+ {element || (ComponentToRender && <ComponentToRender />)}
63
+ </AuthGuard>
64
+ ) : (
65
+ element || (ComponentToRender && <ComponentToRender />)
66
+ )}
67
+ </Suspense>
68
+ </>
69
+ );
70
+
71
+ return { path, element: finalElement };
72
+ });
73
+
74
+ return createBrowserRouter(routesData);
75
+ }, [routes, authStatus, loginPath, globalFallback]);
76
+
77
+ return <RouterProvider router={router} />;
78
+ };
79
+
80
+ export default BrowserRouter;
81
+
82
+
83
+
84
+
85
+
86
+ /***** use
87
+ *
88
+ *
89
+ *
90
+
91
+ import { BrowserRouter } from 'your-npm-package';
92
+
93
+ const routes = [
94
+ {
95
+ path: "/",
96
+ // ইউজার নিজের প্রজেক্ট থেকে ইমপোর্ট ফাংশন দিচ্ছে
97
+ importFunc: () => import("./pages/Home"),
98
+ protectRouter: false
99
+ },
100
+ {
101
+ path: "/dashboard",
102
+ // অথবা সরাসরি কম্পোনেন্ট দিচ্ছে
103
+ element: <Dashboard />,
104
+ protectRouter: true,
105
+ scrollType: "reset"
106
+ }
107
+ ];
108
+
109
+ // App.tsx
110
+ <BrowserRouter routes={routes} authStatus={isLoggedIn} /> />
111
+
112
+ *
113
+ */
114
+
115
+
116
+
117
+
118
+
119
+ /**
120
+ const AuthGuard = (props: RouterProtectProps) => {
121
+ const {
122
+ children = {},
123
+ isAllowed = false,
124
+ redirectTo = "/login"
125
+ } = props;
126
+
127
+ const location = useLocation();
128
+
129
+ if (!isAllowed) {
130
+ // Redirect to login, but keep the current location in state
131
+ // so we can redirect back after login.
132
+ return <Navigate to={redirectTo} state={{ from: location }} replace />;
133
+ }
134
+ return children && children
135
+ };
136
+ The Enhanced BrowserRouter
137
+
138
+
139
+ const BrowserRouter = (props: BrowserRouterProps) => {
140
+ const {
141
+ routes = [],
142
+ authStatus = false
143
+ } = props;
144
+
145
+
146
+ const router = useMemo(() => {
147
+ const routesData = routes.map((route) => {
148
+ const {
149
+ path,
150
+ dir = "pages", // Folder name
151
+ fileName, // File name
152
+ fallback = <div className="loader">Loading...</div>,
153
+ scrollType = "same-area",
154
+ protectRouter = false,
155
+ component = {}
156
+ } = route;
157
+
158
+
159
+ // Dynamic Lazy Import
160
+ const LazyComponent = lazy(() => import(`../${dir}/${fileName}.jsx`));
161
+
162
+
163
+ const element = (
164
+ <>
165
+ <ScrollRestoration
166
+ getKey={(location) => {
167
+ // 'reset' forces a new scroll top, 'same-area' preserves it
168
+ return scrollType === "reset" ? location.key : "app-global-scroll";
169
+ }}
170
+ />
171
+ <Suspense fallback={fallback}>
172
+ {protectRouter ? (
173
+ <div>
174
+ <AuthGuard isAllowed={authStatus}>
175
+ {component}
176
+ </AuthGuard>
177
+ </div>
178
+ ) : (
179
+ <div>
180
+ {component && component}
181
+ </div>
182
+ )}
183
+ </Suspense>
184
+ </>
185
+ );
186
+
187
+ return { path, element };
188
+ });
189
+
190
+ return createBrowserRouter(routesData);
191
+ }, [routes, authStatus]);
192
+
193
+ return <RouterProvider router={router} />;
194
+ };
195
+
196
+ export default BrowserRouter;
197
+
198
+ */
199
+
200
+
201
+
202
+
203
+ /*
204
+
205
+ const routes = [
206
+ {
207
+ path: "/home",
208
+ component: <div>home</div>
209
+ scrollType: "reset"
210
+ }
211
+ ];
212
+
213
+ // Inside your BrowserRouter component:
214
+
215
+
216
+ // 1. Tell Vite to "pre-index" your entire pages folder
217
+ const pages = import.meta.glob('../pages/*.jsx');
218
+
219
+ // 2. Inside your BrowserRouter mapping:
220
+ const BrowserRouter = ({ routes = [] }) => {
221
+ const routesData = routes.map((route) => {
222
+ // route.importPath would be "../pages/Home.jsx"
223
+ const LazyComponent = lazy(pages[route.importPath]);
224
+
225
+ return {
226
+ path: route.path,
227
+ element: (
228
+ <Suspense fallback={route.fallback}>
229
+ <LazyComponent />
230
+ </Suspense>
231
+ )
232
+ };
233
+ });
234
+
235
+ // ... rest of the code
236
+ };
237
+ */
@@ -0,0 +1,11 @@
1
+
2
+
3
+
4
+
5
+
6
+ import BrowserRouter from './BrowserRouter';
7
+
8
+
9
+ export {
10
+ BrowserRouter
11
+ };
@@ -0,0 +1,113 @@
1
+ import {
2
+ ReactNode, ComponentType
3
+ } from 'react';
4
+
5
+
6
+
7
+
8
+
9
+ export interface RouteConfig {
10
+ path: string;
11
+ // ইউজার এখানে () => import('./...') ফাংশনটি পাঠাবে
12
+ importFunc?: () => Promise<{ default: ComponentType<any> }>;
13
+ // অথবা সরাসরি কম্পোনেন্ট পাঠাতে পারবে
14
+ element?: ReactNode;
15
+ fallback?: ReactNode;
16
+ scrollType?: "reset" | "same-area";
17
+ protectRouter?: boolean;
18
+ };
19
+
20
+ export interface BrowserRouterProps {
21
+ routes: RouteConfig[];
22
+ authStatus: boolean;
23
+ loginPath?: string;
24
+ globalFallback?: ReactNode;
25
+ }
26
+
27
+
28
+ export type RouterProtectProps = {
29
+ children: ReactNode;
30
+ redirectTo: string;
31
+ isAllowed: boolean;
32
+ };
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+ /*
44
+
45
+ const AuthGuard: React.FC<{
46
+ isAllowed: boolean;
47
+ redirectTo: string;
48
+ children: React.ReactNode
49
+ }> = ({ isAllowed, redirectTo, children }) => {
50
+ const location = useLocation();
51
+ if (!isAllowed) {
52
+ return <Navigate to={redirectTo} state={{ from: location }} replace />;
53
+ }
54
+ return <>{children}</>;
55
+ };
56
+
57
+ const BrowserRouter: React.FC<BrowserRouterProps> = ({
58
+ routes,
59
+ authStatus,
60
+ loginPath = "/login",
61
+ globalFallback = <div>Loading...</div>
62
+ }) => {
63
+
64
+ const router = useMemo(() => {
65
+ const routesData = routes.map((route) => {
66
+ const {
67
+ path,
68
+ importFunc,
69
+ element,
70
+ fallback,
71
+ scrollType = "same-area",
72
+ protectRouter = false
73
+ } = route;
74
+
75
+ // যদি importFunc থাকে তবে lazy load করবে, নতুবা সরাসরি element ব্যবহার করবে
76
+ const ComponentToRender = importFunc ? lazy(importFunc) : null;
77
+
78
+ const finalElement = (
79
+ <>
80
+ <ScrollRestoration
81
+ getKey={(location) =>
82
+ scrollType === "reset" ? location.key : "app-global-scroll"
83
+ }
84
+ />
85
+ <Suspense fallback={fallback || globalFallback}>
86
+ {protectRouter ? (
87
+ <AuthGuard isAllowed={authStatus} redirectTo={loginPath}>
88
+ {element || (ComponentToRender && <ComponentToRender />)}
89
+ </AuthGuard>
90
+ ) : (
91
+ element || (ComponentToRender && <ComponentToRender />)
92
+ )}
93
+ </Suspense>
94
+ </>
95
+ );
96
+
97
+ return { path, element: finalElement };
98
+ });
99
+
100
+ return createBrowserRouter(routesData);
101
+ }, [routes, authStatus, loginPath, globalFallback]);
102
+
103
+ return <RouterProvider router={router} />;
104
+ };
105
+
106
+ export default BrowserRouter;
107
+ */
108
+
109
+ /*
110
+
111
+
112
+
113
+ */
@@ -1,9 +1,21 @@
1
- import React from 'react';
1
+ import React, {
2
+ ReactNode,
3
+ ChangeEvent,
4
+ CSSProperties
5
+ } from 'react';
2
6
 
3
7
 
4
8
 
5
9
  export interface InputProps {
10
+ name?: string;
11
+ label?: string;
6
12
  placeholder?: string;
7
13
  value?: string;
8
- onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
14
+ onChange?: (val: string) => void;
15
+ onChangeEvent?: (e?: ChangeEvent<HTMLInputElement>) => void;
16
+ error?: string;
17
+ disabled?: boolean;
18
+ required?: string;
19
+ children?: ReactNode;
20
+ style?: CSSProperties;
9
21
  }
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- export interface InputProps {
3
- placeholder?: string;
4
- value?: string;
5
- onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
6
- }