nitro-web 0.1.3 → 0.2.0
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/client/app.tsx +5 -5
- package/client/index.ts +1 -1
- package/client/store.ts +15 -5
- package/components/auth/auth.api.js +305 -118
- package/components/auth/inviteConfirm.tsx +57 -37
- package/components/auth/reset.tsx +9 -4
- package/components/auth/signin.tsx +12 -5
- package/components/auth/signup.tsx +6 -4
- package/components/billing/stripe.api.js +1 -1
- package/package.json +1 -1
- package/server/email/index.js +34 -32
- package/server/index.js +1 -1
- package/server/models/company.js +3 -2
- package/server/models/user.js +2 -1
- package/server/router.js +8 -7
- package/types/components/auth/auth.api.d.ts +40 -11
- package/types/components/auth/auth.api.d.ts.map +1 -1
- package/types/server/email/index.d.ts +2 -0
- package/types/server/email/index.d.ts.map +1 -1
- package/types/server/index.d.ts +1 -1
- package/types/server/index.d.ts.map +1 -1
- package/types/server/models/company.d.ts +5 -1
- package/types/server/models/company.d.ts.map +1 -1
- package/types/server/models/user.d.ts +1 -1
- package/types/server/models/user.d.ts.map +1 -1
- package/types/util.d.ts +2 -2
- package/types/util.d.ts.map +1 -1
- package/types.ts +2 -1
- package/util.js +4 -3
package/client/app.tsx
CHANGED
|
@@ -137,7 +137,7 @@ function getRouter({ settings, config }: { settings: Settings, config: Config })
|
|
|
137
137
|
}
|
|
138
138
|
// Loop files
|
|
139
139
|
// const components = {}
|
|
140
|
-
const layouts: Route[][] = []
|
|
140
|
+
const layouts: Route[][] = [] //rename to routes
|
|
141
141
|
|
|
142
142
|
for (const filename of requireContext.keys()) {
|
|
143
143
|
const file = requireContext(filename) // require
|
|
@@ -319,17 +319,17 @@ async function beforeApp(config: Config) {
|
|
|
319
319
|
|
|
320
320
|
export const middleware = {
|
|
321
321
|
// Default middleware that can referenced from component routes
|
|
322
|
-
isAdmin: (route: unknown, store: { user?: { isAdmin?: boolean } }) => {
|
|
322
|
+
isAdmin: (route: unknown, store: { user?: { isAdmin?: boolean, _id?: string } }) => {
|
|
323
323
|
if (store.user?.isAdmin) return
|
|
324
|
-
else if (store.user) return { redirect: '/signin?unauth' }
|
|
324
|
+
else if (store.user?._id) return { redirect: '/signin?unauth' }
|
|
325
325
|
else return { redirect: '/signin?signin' }
|
|
326
326
|
},
|
|
327
327
|
isSubscribed: (route: unknown, store: { user?: { company?: { currentSubscription?: string } } }) => {
|
|
328
328
|
if (store.user?.company?.currentSubscription) return
|
|
329
329
|
else return { redirect: '/plans/subscribe' }
|
|
330
330
|
},
|
|
331
|
-
isUser: (route: unknown, store: { user?: {
|
|
332
|
-
if (store.user) return
|
|
331
|
+
isUser: (route: unknown, store: { user?: { _id?: string } }) => {
|
|
332
|
+
if (store.user?._id) return
|
|
333
333
|
else return { redirect: '/signin?signin' }
|
|
334
334
|
},
|
|
335
335
|
}
|
package/client/index.ts
CHANGED
|
@@ -11,7 +11,7 @@ export * from '../types'
|
|
|
11
11
|
|
|
12
12
|
// Main app functions
|
|
13
13
|
export { setupApp, updateJwt, middleware } from './app'
|
|
14
|
-
export { createStore, exposedStoreData, preloadedStoreData, setStoreWrapper } from './store'
|
|
14
|
+
export { createStore, exposedStoreData, preloadedStoreData, setStoreWrapper, getSignoutStore, getInitialStore } from './store'
|
|
15
15
|
|
|
16
16
|
// Component Pages
|
|
17
17
|
export { Signin } from '../components/auth/signin'
|
package/client/store.ts
CHANGED
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { createContainer } from 'react-tracked'
|
|
2
2
|
import { Dispatch, SetStateAction } from 'react'
|
|
3
|
-
import { axios, isObject } from 'nitro-web/util'
|
|
3
|
+
import { axios, isObject, deepCopy } from 'nitro-web/util'
|
|
4
4
|
import { updateJwt } from 'nitro-web'
|
|
5
5
|
import { Store } from 'nitro-web/types'
|
|
6
6
|
|
|
7
|
-
export const preloadedStoreData: Store = {}
|
|
8
|
-
export let
|
|
7
|
+
export const preloadedStoreData: Partial<Store> = {}
|
|
8
|
+
export let initialStoreData: Store // handy for resetting the user on signout
|
|
9
|
+
export let exposedStoreData: Store // handy for the router to access the store
|
|
9
10
|
|
|
10
|
-
export function createStore<T extends Store>(
|
|
11
|
+
export function createStore<T extends Store>(initialStore: T) {
|
|
11
12
|
const container = createContainer(() => {
|
|
12
13
|
// const [state, setState] = useState<T>(() => (initData || store || {}) as T)
|
|
13
|
-
const [state, setState] = useState<T>(() => beforeUpdate({ ...
|
|
14
|
+
const [state, setState] = useState<T>(() => beforeUpdate({ ...initialStore, ...preloadedStoreData } as T))
|
|
15
|
+
initialStoreData = initialStore
|
|
14
16
|
exposedStoreData = state
|
|
15
17
|
return [state, setStoreWrapper(setState)]
|
|
16
18
|
})
|
|
@@ -45,3 +47,11 @@ function beforeUpdate<T extends Store>(newStore: T) {
|
|
|
45
47
|
}
|
|
46
48
|
return newStore
|
|
47
49
|
}
|
|
50
|
+
|
|
51
|
+
export function getInitialStore() {
|
|
52
|
+
return deepCopy(initialStoreData)
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export function getSignoutStore(prev: Store, initialStore: Store) {
|
|
56
|
+
return { ...(prev || {}), user: initialStore.user }
|
|
57
|
+
}
|