nitro-web 0.0.106 → 0.0.108
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/components/auth/reset.tsx +5 -4
- package/components/auth/signin.tsx +3 -2
- package/components/auth/signup.tsx +3 -2
- package/components/partials/element/table.tsx +23 -14
- package/components/partials/form/checkbox.tsx +24 -12
- package/components/partials/styleguide.tsx +6 -3
- package/package.json +1 -1
- package/server/email/partials/layout1.swig +2 -1
- package/types/util.d.ts +3 -2
- package/types/util.d.ts.map +1 -1
- package/types.ts +18 -0
- package/util.js +4 -3
|
@@ -4,9 +4,10 @@ import { Errors } from 'nitro-web/types'
|
|
|
4
4
|
type resetInstructionsProps = {
|
|
5
5
|
className?: string,
|
|
6
6
|
elements?: { Button?: typeof Button },
|
|
7
|
+
redirectTo?: string,
|
|
7
8
|
}
|
|
8
9
|
|
|
9
|
-
export function ResetInstructions({ className, elements }: resetInstructionsProps) {
|
|
10
|
+
export function ResetInstructions({ className, elements, redirectTo }: resetInstructionsProps) {
|
|
10
11
|
const navigate = useNavigate()
|
|
11
12
|
const isLoading = useState(false)
|
|
12
13
|
const [, setStore] = useTracked()
|
|
@@ -20,7 +21,7 @@ export function ResetInstructions({ className, elements }: resetInstructionsProp
|
|
|
20
21
|
try {
|
|
21
22
|
await request('post /api/reset-instructions', state, event, isLoading, setState)
|
|
22
23
|
setStore((s) => ({ ...s, message: 'Done! Please check your email.' }))
|
|
23
|
-
navigate('/signin')
|
|
24
|
+
navigate(redirectTo || '/signin')
|
|
24
25
|
} catch (e) {
|
|
25
26
|
return setState({ ...state, errors: e as Errors })
|
|
26
27
|
}
|
|
@@ -47,7 +48,7 @@ export function ResetInstructions({ className, elements }: resetInstructionsProp
|
|
|
47
48
|
)
|
|
48
49
|
}
|
|
49
50
|
|
|
50
|
-
export function ResetPassword({ className, elements }: resetInstructionsProps) {
|
|
51
|
+
export function ResetPassword({ className, elements, redirectTo }: resetInstructionsProps) {
|
|
51
52
|
const navigate = useNavigate()
|
|
52
53
|
const params = useParams()
|
|
53
54
|
const isLoading = useState(false)
|
|
@@ -67,7 +68,7 @@ export function ResetPassword({ className, elements }: resetInstructionsProps) {
|
|
|
67
68
|
try {
|
|
68
69
|
const data = await request('post /api/reset-password', state, event, isLoading, setState)
|
|
69
70
|
setStore((s) => ({ ...s, ...data }))
|
|
70
|
-
navigate('/')
|
|
71
|
+
navigate(redirectTo || '/')
|
|
71
72
|
} catch (e) {
|
|
72
73
|
return setState({ ...state, errors: e as Errors })
|
|
73
74
|
}
|
|
@@ -4,9 +4,10 @@ import { Errors } from 'nitro-web/types'
|
|
|
4
4
|
type signinProps = {
|
|
5
5
|
className?: string,
|
|
6
6
|
elements?: { Button?: typeof Button },
|
|
7
|
+
redirectTo?: string,
|
|
7
8
|
}
|
|
8
9
|
|
|
9
|
-
export function Signin({ className, elements }: signinProps) {
|
|
10
|
+
export function Signin({ className, elements, redirectTo }: signinProps) {
|
|
10
11
|
const navigate = useNavigate()
|
|
11
12
|
const location = useLocation()
|
|
12
13
|
const isSignout = location.pathname == '/signout'
|
|
@@ -48,7 +49,7 @@ export function Signin({ className, elements }: signinProps) {
|
|
|
48
49
|
setStore((s) => ({ ...s, ...data }))
|
|
49
50
|
setTimeout(() => { // wait for setStore
|
|
50
51
|
if (location.search.includes('redirect')) navigate(location.search.replace('?redirect=', ''))
|
|
51
|
-
else navigate('/')
|
|
52
|
+
else navigate(redirectTo || '/')
|
|
52
53
|
}, 100)
|
|
53
54
|
} catch (e) {
|
|
54
55
|
return setState({ ...state, errors: e as Errors})
|
|
@@ -4,9 +4,10 @@ import { Errors } from 'nitro-web/types'
|
|
|
4
4
|
type signupProps = {
|
|
5
5
|
className?: string,
|
|
6
6
|
elements?: { Button?: typeof Button },
|
|
7
|
+
redirectTo?: string,
|
|
7
8
|
}
|
|
8
9
|
|
|
9
|
-
export function Signup({ className, elements }: signupProps) {
|
|
10
|
+
export function Signup({ className, elements, redirectTo }: signupProps) {
|
|
10
11
|
const navigate = useNavigate()
|
|
11
12
|
const isLoading = useState(false)
|
|
12
13
|
const [, setStore] = useTracked()
|
|
@@ -26,7 +27,7 @@ export function Signup({ className, elements }: signupProps) {
|
|
|
26
27
|
try {
|
|
27
28
|
const data = await request('post /api/signup', state, e, isLoading, setState)
|
|
28
29
|
setStore((prev) => ({ ...prev, ...data }))
|
|
29
|
-
setTimeout(() => navigate('/'), 0) // wait for setStore
|
|
30
|
+
setTimeout(() => navigate(redirectTo || '/'), 0) // wait for setStore
|
|
30
31
|
} catch (e) {
|
|
31
32
|
setState((prev) => ({ ...prev, errors: e as Errors }))
|
|
32
33
|
}
|
|
@@ -31,10 +31,12 @@ export type TableProps<T> = {
|
|
|
31
31
|
rowLinesMax?: number
|
|
32
32
|
rowSideColor?: (row?: T) => { className: string, width: number }
|
|
33
33
|
rowGap?: number
|
|
34
|
+
rowOnClick?: (row: T) => void
|
|
34
35
|
columnGap?: number
|
|
35
36
|
columnPaddingX?: number
|
|
36
37
|
className?: string
|
|
37
38
|
tableClassName?: string
|
|
39
|
+
rowClassName?: string
|
|
38
40
|
columnClassName?: string
|
|
39
41
|
columnSelectedClassName?: string
|
|
40
42
|
columnHeaderClassName?: string
|
|
@@ -53,11 +55,13 @@ export function Table<T extends TableRow>({
|
|
|
53
55
|
rowLinesMax,
|
|
54
56
|
rowSideColor,
|
|
55
57
|
rowGap=0,
|
|
58
|
+
rowOnClick,
|
|
56
59
|
columnGap=11,
|
|
57
60
|
columnPaddingX=11,
|
|
58
61
|
// Class names
|
|
59
62
|
className,
|
|
60
63
|
tableClassName,
|
|
64
|
+
rowClassName,
|
|
61
65
|
columnClassName,
|
|
62
66
|
columnSelectedClassName,
|
|
63
67
|
columnHeaderClassName,
|
|
@@ -68,6 +72,7 @@ export function Table<T extends TableRow>({
|
|
|
68
72
|
const [selectedRowIds, setSelectedRowIds] = useState<string[]>([])
|
|
69
73
|
const _columnClassName = 'table-cell py-1 align-middle text-sm border-y border-border ' +
|
|
70
74
|
'first:border-l last:border-r border-t-0 box-border'
|
|
75
|
+
const [now] = useState(new Date().getTime())
|
|
71
76
|
|
|
72
77
|
const columns = useMemo(() => {
|
|
73
78
|
const checkboxCol: TableColumn = { value: 'checkbox', label: '', disableSort: true }
|
|
@@ -95,8 +100,8 @@ export function Table<T extends TableRow>({
|
|
|
95
100
|
else return align == 'left' ? '' : align == 'center' ? 'text-center' : 'text-right'
|
|
96
101
|
}, [])
|
|
97
102
|
|
|
98
|
-
// Reset selected rows when the location changes
|
|
99
|
-
useEffect(() => setSelectedRowIds([]), [location.key])
|
|
103
|
+
// Reset selected rows when the location changes, or the number of rows changed (e.g. when a row is removed)
|
|
104
|
+
useEffect(() => setSelectedRowIds([]), [location.key, rows.map(row => row?._id||'').join(',')])
|
|
100
105
|
|
|
101
106
|
// --- Sorting ---
|
|
102
107
|
|
|
@@ -129,7 +134,8 @@ export function Table<T extends TableRow>({
|
|
|
129
134
|
columns.map((col, j) => {
|
|
130
135
|
const disableSort = col.disableSort || selectedRowIds.length
|
|
131
136
|
const sideColor = j == 0 && rowSideColor ? rowSideColor(undefined) : undefined
|
|
132
|
-
const
|
|
137
|
+
const sideColorPadding = sideColor && rows.length > 0 ? sideColor.width + 5 : 0
|
|
138
|
+
const pl = sideColorPadding + (j == 0 ? columnPaddingX : columnGap)
|
|
133
139
|
const pr = j == columns.length - 1 ? columnPaddingX : columnGap
|
|
134
140
|
return (
|
|
135
141
|
<div
|
|
@@ -147,13 +153,10 @@ export function Table<T extends TableRow>({
|
|
|
147
153
|
)}
|
|
148
154
|
>
|
|
149
155
|
<div
|
|
150
|
-
style={{
|
|
151
|
-
maxHeight: rowContentHeightMax,
|
|
152
|
-
paddingLeft: sideColor && rows.length > 0 ? sideColor.width + 5 : 0,
|
|
153
|
-
}}
|
|
156
|
+
style={{ maxHeight: rowContentHeightMax }}
|
|
154
157
|
className={twMerge(
|
|
158
|
+
col.value == 'checkbox' ? 'relative' : getLineClampClassName(col.rowLinesMax),
|
|
155
159
|
rowContentHeightMax ? 'overflow-hidden' : '',
|
|
156
|
-
getLineClampClassName(col.rowLinesMax),
|
|
157
160
|
col.overflow ? 'overflow-visible' : '',
|
|
158
161
|
col.innerClassName
|
|
159
162
|
)}
|
|
@@ -163,13 +166,14 @@ export function Table<T extends TableRow>({
|
|
|
163
166
|
? <>
|
|
164
167
|
<Checkbox
|
|
165
168
|
size={checkboxSize}
|
|
166
|
-
name=
|
|
167
|
-
|
|
169
|
+
name={`checkbox-all-${now}`}
|
|
170
|
+
hitboxPadding={5}
|
|
171
|
+
className='!m-0 py-[5px]' // py-5 is required for hitbox (restricted to tabel cell height)
|
|
168
172
|
checkboxClassName={twMerge('border-foreground shadow-[0_1px_2px_0px_#0000001c]', checkboxClassName)}
|
|
169
|
-
onChange={(e) => onSelect('all', e.target.checked)}
|
|
173
|
+
onChange={(e) => onSelect('all', e.target.checked)}
|
|
170
174
|
/>
|
|
171
175
|
<div
|
|
172
|
-
className={`${selectedRowIds.length ? 'block' : 'hidden'} [&>*]:absolute [&>*]:inset-y-0 [&>*]:left-[
|
|
176
|
+
className={`${selectedRowIds.length ? 'block' : 'hidden'} [&>*]:absolute [&>*]:inset-y-0 [&>*]:left-[35px] [&>*]:z-10 whitespace-nowrap`}
|
|
173
177
|
>
|
|
174
178
|
{generateCheckboxActions && generateCheckboxActions(selectedRowIds)}
|
|
175
179
|
</div>
|
|
@@ -203,7 +207,10 @@ export function Table<T extends TableRow>({
|
|
|
203
207
|
return (
|
|
204
208
|
<div
|
|
205
209
|
key={`${row._id}-${i}`}
|
|
206
|
-
|
|
210
|
+
onClick={rowOnClick ? () => rowOnClick(row) : undefined}
|
|
211
|
+
className={twMerge(
|
|
212
|
+
`table-row relative ${rowOnClick ? 'cursor-pointer' : ''} ${isSelected ? 'is-selected' : ''}`, rowClassName
|
|
213
|
+
)}
|
|
207
214
|
>
|
|
208
215
|
{
|
|
209
216
|
columns.map((col, j) => {
|
|
@@ -249,7 +256,9 @@ export function Table<T extends TableRow>({
|
|
|
249
256
|
name={`checkbox-${row._id}`}
|
|
250
257
|
onChange={(e) => onSelect(row?._id || '', e.target.checked)}
|
|
251
258
|
checked={selectedRowIds.includes(row?._id || '')}
|
|
252
|
-
|
|
259
|
+
onClick={(e) => e.stopPropagation()}
|
|
260
|
+
hitboxPadding={5}
|
|
261
|
+
className='!m-0 py-[5px]' // py-5 is required for hitbox (restricted to tabel cell height)
|
|
253
262
|
checkboxClassName={twMerge('border-foreground shadow-[0_1px_2px_0px_#0000001c]', checkboxClassName)}
|
|
254
263
|
/>
|
|
255
264
|
: generateTd(col, row, i, i == rows.length - 1)
|
|
@@ -16,12 +16,26 @@ type CheckboxProps = React.InputHTMLAttributes<HTMLInputElement> & {
|
|
|
16
16
|
checkboxClassName?: string
|
|
17
17
|
svgClassName?: string
|
|
18
18
|
labelClassName?: string
|
|
19
|
+
hitboxPadding?: number
|
|
20
|
+
onClick?: (e: React.MouseEvent<HTMLLabelElement>) => void
|
|
19
21
|
/** title used to find related error messages */
|
|
20
22
|
errorTitle?: string|RegExp
|
|
21
23
|
}
|
|
22
24
|
|
|
23
25
|
export function Checkbox({
|
|
24
|
-
state,
|
|
26
|
+
state,
|
|
27
|
+
size,
|
|
28
|
+
subtext,
|
|
29
|
+
text,
|
|
30
|
+
type='checkbox',
|
|
31
|
+
className,
|
|
32
|
+
checkboxClassName,
|
|
33
|
+
svgClassName,
|
|
34
|
+
labelClassName,
|
|
35
|
+
hitboxPadding,
|
|
36
|
+
errorTitle,
|
|
37
|
+
onClick, // this gets called twice...
|
|
38
|
+
...props
|
|
25
39
|
}: CheckboxProps) {
|
|
26
40
|
// Checkbox/radio/toggle component
|
|
27
41
|
let value!: boolean
|
|
@@ -44,13 +58,12 @@ export function Checkbox({
|
|
|
44
58
|
const toggleAfterSize = toggleHeight - BORDER * 2
|
|
45
59
|
|
|
46
60
|
return (
|
|
47
|
-
<div
|
|
48
|
-
|
|
49
|
-
>
|
|
50
|
-
<div className="flex gap-3 items-baseline">
|
|
61
|
+
<div className={'mt-2.5 mb-6 ' + twMerge(`mt-input-before mb-input-after text-sm nitro-checkbox ${className}`)}>
|
|
62
|
+
<label for={id} className="inline-flex gap-3 items-baseline" onClick={onClick}>
|
|
51
63
|
<div className="shrink-0 flex items-center">
|
|
52
64
|
<div className="w-0"> </div>
|
|
53
65
|
<div className="group relative">
|
|
66
|
+
{hitboxPadding && <div className='block absolute cursor-default' style={{inset: `-${hitboxPadding}px`}} />}
|
|
54
67
|
{
|
|
55
68
|
type !== 'toggle'
|
|
56
69
|
? <>
|
|
@@ -114,12 +127,11 @@ export function Checkbox({
|
|
|
114
127
|
className="sr-only peer"
|
|
115
128
|
checked={value}
|
|
116
129
|
/>
|
|
117
|
-
<
|
|
118
|
-
for={id}
|
|
130
|
+
<div
|
|
119
131
|
style={{ width: toggleWidth, height: toggleHeight }}
|
|
120
132
|
className={
|
|
121
133
|
twMerge(
|
|
122
|
-
'block bg-gray-200 rounded-full transition-colors peer-focus-visible:outline peer-focus-visible:outline-2 peer-focus-visible:outline-offset-2 ' +
|
|
134
|
+
'block bg-gray-200 rounded-full transition-colors peer-focus-visible:outline peer-focus-visible:outline-2 peer-focus-visible:outline-offset-2 p-2 ' +
|
|
123
135
|
// Variable-selected theme colors (was .*-blue-600)
|
|
124
136
|
'peer-checked:bg-variable-selected peer-focus-visible:outline-variable-selected ' +
|
|
125
137
|
labelClassName
|
|
@@ -132,18 +144,18 @@ export function Checkbox({
|
|
|
132
144
|
'absolute top-[2px] start-[2px] bg-white border-gray-300 border rounded-full transition-all group-has-[:checked]:border-white group-has-[:checked]:translate-x-full '
|
|
133
145
|
}
|
|
134
146
|
/>
|
|
135
|
-
</
|
|
147
|
+
</div>
|
|
136
148
|
</>
|
|
137
149
|
}
|
|
138
150
|
</div>
|
|
139
151
|
</div>
|
|
140
152
|
{text &&
|
|
141
|
-
<
|
|
153
|
+
<div className="text-[length:inherit] leading-[inherit] select-none">
|
|
142
154
|
<span className="text-gray-900">{text}</span>
|
|
143
155
|
<span className="ml-2 text-gray-500">{subtext}</span>
|
|
144
|
-
</
|
|
156
|
+
</div>
|
|
145
157
|
}
|
|
146
|
-
</
|
|
158
|
+
</label>
|
|
147
159
|
{error && <div class="mt-1.5 text-xs text-danger-foreground nitro-error">{error.detail}</div>}
|
|
148
160
|
</div>
|
|
149
161
|
)
|
|
@@ -31,6 +31,7 @@ type QuoteExample = {
|
|
|
31
31
|
|
|
32
32
|
export function Styleguide({ className, elements, children }: StyleguideProps) {
|
|
33
33
|
const Button = elements?.Button || ButtonNitro
|
|
34
|
+
const [, setStore] = useTracked()
|
|
34
35
|
const [customerSearch, setCustomerSearch] = useState('')
|
|
35
36
|
const [showModal1, setShowModal1] = useState(false)
|
|
36
37
|
const [state, setState] = useState({
|
|
@@ -490,21 +491,23 @@ export function Styleguide({ className, elements, children }: StyleguideProps) {
|
|
|
490
491
|
className="mb-6"
|
|
491
492
|
/>
|
|
492
493
|
<Table
|
|
493
|
-
rows={rows.slice(0, 2)}
|
|
494
|
+
rows={rows.slice(0, 2).map(row => ({ ...row, _id: row._id + '1' }))}
|
|
494
495
|
columns={thead}
|
|
495
496
|
rowLinesMax={1}
|
|
496
497
|
headerHeightMin={35}
|
|
497
498
|
rowGap={8}
|
|
498
499
|
rowHeightMin={42}
|
|
499
500
|
rowSideColor={(row) => ({ className: `rounded-l-xl ${statusColors(row?.status as string)}`, width: 10 })}
|
|
501
|
+
rowOnClick={useCallback((row: QuoteExample) => {setStore(s => ({ ...s, message: `Row ${row?._id} clicked` }))}, [setStore])}
|
|
500
502
|
generateCheckboxActions={generateCheckboxActions}
|
|
501
503
|
generateTd={generateTd}
|
|
504
|
+
className="mb-5"
|
|
502
505
|
tableClassName="rounded-3px"
|
|
506
|
+
rowClassName="[&:hover>div]:bg-gray-50"
|
|
503
507
|
columnClassName="border-t-1 first:rounded-l-xl last:rounded-r-xl"
|
|
504
|
-
columnSelectedClassName="bg-
|
|
508
|
+
columnSelectedClassName="bg-gray-50 border-indigo-300"
|
|
505
509
|
columnHeaderClassName="text-gray-500 text-2xs uppercase border-none"
|
|
506
510
|
checkboxClassName="rounded-[2px] shadow-none"
|
|
507
|
-
className="mb-5"
|
|
508
511
|
/>
|
|
509
512
|
</div>
|
|
510
513
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nitro-web",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.108",
|
|
4
4
|
"repository": "github:boycce/nitro-web",
|
|
5
5
|
"homepage": "https://boycce.github.io/nitro-web/",
|
|
6
6
|
"description": "Nitro is a battle-tested, modular base project to turbocharge your projects, styled using Tailwind 🚀",
|
|
@@ -31,7 +31,8 @@
|
|
|
31
31
|
<tr>
|
|
32
32
|
<td width="180px" align="left">
|
|
33
33
|
<a href="%recipient.domain%" target="_blank">
|
|
34
|
-
|
|
34
|
+
<!-- warning: you can't use svgs in emails for security reasons -->
|
|
35
|
+
<img src="%recipient.domain%/assets/imgs/logo/logo.png" width="auto" height="22" border="0">
|
|
35
36
|
</a>
|
|
36
37
|
</td>
|
|
37
38
|
<td align="right">
|
package/types/util.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Returns
|
|
2
|
+
* Returns a monastery schema which matches the Google autocomplete output
|
|
3
3
|
*/
|
|
4
4
|
export function addressSchema(): {
|
|
5
5
|
city: {
|
|
@@ -555,6 +555,7 @@ export function parseFilters(query: {
|
|
|
555
555
|
* }
|
|
556
556
|
* @param {{ fieldsFlattened: object, name: string }} model - The Monastery model
|
|
557
557
|
* @param {number} [limit=10]
|
|
558
|
+
* @param {boolean} [hasMore] - returns an extra row to signal there are more pages
|
|
558
559
|
* @example returned object (using the examples above):
|
|
559
560
|
* E.g. {
|
|
560
561
|
* limit: 10,
|
|
@@ -569,7 +570,7 @@ export function parseSortOptions(query: {
|
|
|
569
570
|
}, model: {
|
|
570
571
|
fieldsFlattened: object;
|
|
571
572
|
name: string;
|
|
572
|
-
}, limit?: number): {
|
|
573
|
+
}, limit?: number, hasMore?: boolean): {
|
|
573
574
|
limit: number;
|
|
574
575
|
skip: number;
|
|
575
576
|
sort: {
|
package/types/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../util.js"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../util.js"],"names":[],"mappings":"AAoCA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BC;AAED;;;;;;;;;GASG;AACH,yBARa,sBAAsB,CAoBlC;AAED;;;;;GAKG;AACH,8BAJW,MAAM,cACN;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAC,GACrB,MAAM,CAKlB;AAED;;;;;;GAMG;AACH,+BALW,MAAM,oBACN,OAAO,gBACP,OAAO,GACL,MAAM,CAelB;AAED;;;;;GAKG;AACH,sCAJW,MAAM,wBACN,OAAO,GACL,MAAM,CAMlB;AAED;;;;GAIG;AACH,sCAHW,MAAM,GACJ,MAAM,CAIlB;AAED;;;;GAIG;AACH,iCAHW,MAAM,GACJ,MAAM,CAIlB;AAED;;;;;;GAMG;AACH,gCALW,MAAM,aACN,MAAM,oBACN,MAAM,GACJ,MAAM,CAUlB;AAED;;;;GAIG;AACH,0CAHW,MAAM,GACJ,MAAM,CAMlB;AAED;;;;;;;;;;;GAWG;AACH,4BAVW,MAAM,GAAC,IAAI,WACX,MAAM,aACN,MAAM,GACJ,MAAM,CAsBlB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,yBAlBuC,CAAC,SAA3B,CAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAI,QAI3B,CAAC,SACD,MAAM,YACN;IACN,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GACS,CAAC,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG;IACpD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,KAAK,EAAE,MAAM,UAAU,CAAC,CAAC,CAAC,CAAA;CAC7B,CAuKH;AAED;;;;;GAKG;AACH,yBAJa,CAAC,OACH,CAAC,GACC,CAAC,CAgBb;AAED;;;;;GAKG;AACH,8BAJW,MAAM,GAAC,GAAG,EAAE,QACZ,MAAM,GACJ,OAAO,CAgBnB;AAED;;;;;;;GAOG;AACH,yBANa,CAAC,OACH,CAAC,QACD,MAAM,SACN,OAAO,WAAS,GACd,CAAC,CA8Bb;AAED;;;;;;GAMG;AACH,0BALW;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAC,GAAC,EAAE,GAAC,IAAI,gCAE5B,MAAM,GACJ,MAAM,GAAC,EAAE,GAAC,IAAI,CAmB1B;AAED;;;;;;;;;GASG;AACH,mCARW,MAAM,GAAC,IAAI,GAAC,IAAI,YAChB,MAAM,SACN,MAAM,QACN,MAAM,GACJ,IAAI,CA+BhB;AAED;;;;;GAKG;AACH,mCAJW,MAAM,iBACN,OAAO,GACL,MAAM,CAMlB;AAED;;;;GAIG;AACH,mCAHW,MAAM,GACJ,MAAM,CAWlB;AAED;;;;;;;;GAQG;AACH,8BAPW,MAAM,QACN;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAE,qBAC5G,QAAQ,cACR,MAAM,GACJ,QAAQ,CAwEpB;AAED;;;;GAIG;AACH,iCAHW;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAC,GACnC,MAAM,CAIlB;AAED;;;;GAIG;AACH,sCAHW,MAAM,GACJ,MAAM,EAAE,CASpB;AAED;;;;GAIG;AACH,6CAHW;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACjC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAS5D;AAED;;;;GAIG;AACH,+CAHW;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACjC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAS9C;AAED;;;;;GAKG;AACH,yCAJW;IAAE,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,GAAC,SAAS,QAC1D,MAAM,GAAC,MAAM,GACX;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAC,SAAS,CAQvD;AAED;;;;;GAKG;AACH,uCAJW,MAAM,iBACN,MAAM,GACJ,MAAM,CAYlB;AAED;;;;;GAKG;AACH,qCAJW;IAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CAAE,QACvC,MAAM,GACJ,MAAM,CAYlB;AAED;;;;GAIG;AACH,6DAHW,MAAM,GACJ,OAAO,CAAC,OAAO,mBAAmB,EAAE,MAAM,GAAC,IAAI,CAAC,CAI5D;AAED;;;;;;;;;;;GAWG;AACH,wCAHW,aAAa,GACX,UAAU,EAAE,CAgCxB;AAED;;;;;;GAMG;AACH,+BALW,GAAG,EAAE,UACL,OAAO,QACP,MAAM,GACJ,OAAO,CAcnB;AAED;;;;GAIG;AACH,kCAHW,OAAO,GACL,OAAO,CAInB;AAED;;;;GAIG;AACH,iCAHW,OAAO,GACL,OAAO,CAInB;AAED;;;;GAIG;AACH,oCAHW,OAAO,GACL,OAAO,CAInB;AAED;;;;GAIG;AACH,+BAHW,MAAM,GACJ,OAAO,CAMnB;AAED;;;;;GAKG;AACH,8BAJW;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAC,GAAC,IAAI,qBAC7B,OAAO,GACL,OAAO,CASnB;AAED;;;;GAIG;AACH,qCAHW,OAAO,GACL,OAAO,CAInB;AAED;;;;GAIG;AACH,+BAHW,OAAO,GACL,OAAO,CAmBnB;AAED;;;;GAIG;AACH,mCAHW,OAAO,GACL,OAAO,CAInB;AAED;;;;GAIG;AACH,mCAHW,OAAO,GACL,OAAO,CAKnB;AAED;;;;GAIG;AACH,kCAHW,OAAO,GACL,OAAO,CAInB;AAED;;;;GAIG;AACH,mCAHW,OAAO,GACL,OAAO,CAInB;AAED;;;;GAIG;AACH,gCAHW,MAAM,GACJ,MAAM,CAIlB;AAED;;;;;;GAMG;AACH,kCALW,MAAM,QACN,MAAM,iBACN,OAAO,GACL,MAAM,CAalB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qCAxBW,MAAM,mBACN,KAAK,GAAC,GAAG,aACT,KAAK,GACH,CAAC,KAAK,EAAE,KAAK,CAAC,GAAC,IAAI,CAuC/B;AAED;;;;;;;;;GASG;AACH,qDARW;IACN,IAAI,CAAC,EAAE;QAAC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAC,CAAA;IACjE,QAAQ,CAAC,EAAE;QAAC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAC,CAAA;CAC3C,MACO,MAAM,UACN,MAAM,OA+ChB;AAED;;;;;GAKG;AACH,6CAJW,MAAM,EAAE,UACR,MAAM,EAAE,GACP,MAAM,CAgBjB;AAED;;;;GAIG;AACH,kCAHW;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,MACtB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,KAAK,GAAG;;EAS1C;AAED;;;;;GAKG;AACH,0BAJW;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,UAC1B,MAAM,EAAE,GACN;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAStC;AAED;;;;;;;;;;;;;GAaG;AACH,yBAVa,CAAC,YACH,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,oBACvC;IAAC,MAAM,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAC,CAAA;CAAC,GAAC,CAAC,MAAM,EAAE,WAAS,OAAO,CAAC,8BAEjE,OAAO,CAAC,CAAC,CAAC,CA2DtB;AAED;;;;;;GAMG;AACH,0BALW,MAAM,YACN,MAAM,eACN,MAAM,GACJ,MAAM,CAUlB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,oCAtBW;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,UAOzB;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAC,QAAQ,GAAC,QAAQ,GAAC,WAAW,GAAC,MAAM,EAAE,CAAA;CAAE;;cAgBzB,MAAM;eAAS,MAAM;;iBAAe,MAAM;;EAmD7F;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wCAhBW;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,GAAG,GAAC,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,SAMnD;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,UACzC,MAAM,YACN,OAAO;;;;;;EA4BjB;AAED;;;;GAIG;AACH,0BAHW;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,QACtB,MAAM,GAAC,MAAM,GAAC,MAAM,EAAE,GAAC,MAAM,EAAE;;EAiBzC;AAED;;;;;;;GAOG;AACH,0CALW,MAAM,iBACN,OAAO,GACL;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAC,IAAI,CAAA;CAAC,CAsBxC;AAED;;;;GAIG;AACH,yCAHW,MAAM,GACJ,MAAM,EAAE,CAOpB;AAED;;;;;;GAMG;AACH,kCALW;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAC,UACxB,MAAM,YACN;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAC,GACrB,MAAM,CAgBlB;AAED;;;;;;;;;;;;GAYG;AACH,+BAXW,MAAM,SACN;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,UACtB;IAAC,cAAc,CAAC,WAAU;CAAC,cAC3B,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,aACnC,QAAQ,GACN,OAAO,CAAC,GAAG,CAAC,CAyDxB;AAED;;;;GAIG;AACH,0CAHW,EAAE,GAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAC,GACrB,EAAE,GAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAC,CAcnC;AAED;;;;;;;;GAQG;AACH,gCANW,MAAM,gBACN,KAAK,EAAE,GAAC,KAAK,SACb,MAAM,MACN,MAAM,GACJ,MAAM,CAclB;AAED;;;;GAIG;AACH,qCAHW,MAAM,GACJ,MAAM,CAMlB;AAED;;;;;;;;GAQG;AACH,yCAPW,MAAM,gBACN,MAAM,wBAEN,MAAM,aADN,MAAM,GAEJ,MAAM,CA8ClB;AAED;;;;;GAKG;AACH,uCAJW,MAAM,cACN,OAAO,GACL,MAAM,CAelB;AAED;;;;;GAKG;AACH,gEAHW,MAAM,GACJ,OAAO,CAAC,IAAI,CAAC,CAMzB;AAED;;;;GAIG;AACH,oDAFW,aAAa,QAKvB;AAED;;;;;GAKG;AACH,sCAJW;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAC,EAAE,OACtB,MAAM,GACJ,MAAM,EAAE,CAQpB;AAED;;;;;;;;;;;GAWG;AACH,+BAVW,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,SACvB,MAAM,YACN;IACL,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACrB,YAoBH;AAED;;;;;GAKG;AACH,wBAJa,CAAC,YACH,CAAC,GAAG,SAAS,GACX,CAAC,CAAC,SAAS,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CASvC;AAED;;;;GAIG;AACH,6BAHW,MAAM,GACJ,MAAM,CAKlB;AAwED;;;;GAIG;AACH,gCAHW,MAAM,GACJ,MAAM,CAKlB;AA3ED,2FAiEE;;;;yBAp/BW;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;;;;yBACjC;IAAE,MAAM,EAAE,MAAM;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE;;;;8BACrC;IAAE,QAAQ,EAAE;QAAE,IAAI,EAAE;YAAE,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAA;CAAE;;;;4BAE7F,KAAK,GAAC,UAAU,EAAE,GAAC,UAAU,GAAC,eAAe,GAAC,MAAM,GAAC,GAAG;;;;oBAoNxD,CAAC,MAAM,EAAE,MAAM,CAAC;;;;kBAChB;IAAC,UAAU,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAA;CAAC;;;;oBAkhBpC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAC;uBAr+C7D,OAAO,OAAO,EAAE,QAAQ,CAAC,OAAO,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;;;;4BAI9D,OAAO,OAAO,EAAE,aAAa;;;;iCAC7B,OAAO,OAAO,EAAE,kBAAkB;;;;4BAClC,OAAO,OAAO,EAAE,aAAa;;;;wCAC7B,OAAO,aAAa,EAAE,yBAAyB;;;;0CAG/C,kBAAkB,GAAG;IAAE,aAAa,CAAC,EAAE,yBAAyB,CAAA;CAAE;;;;qCAGlE,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,GAAG;IACrC,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,2BAA2B,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;CACzG"}
|
package/types.ts
CHANGED
|
@@ -59,6 +59,24 @@ export type Store = {
|
|
|
59
59
|
user?: User,
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
+
// util.addressSchema
|
|
63
|
+
export type Address = {
|
|
64
|
+
city?: string
|
|
65
|
+
country?: string
|
|
66
|
+
full?: string
|
|
67
|
+
line1?: string
|
|
68
|
+
line2?: string
|
|
69
|
+
number?: string
|
|
70
|
+
postcode?: string
|
|
71
|
+
suburb?: string
|
|
72
|
+
unit?: string
|
|
73
|
+
area?: {
|
|
74
|
+
bottomLeft?: [number, number]
|
|
75
|
+
topRight?: [number, number]
|
|
76
|
+
}
|
|
77
|
+
location?: [number, number]
|
|
78
|
+
}
|
|
79
|
+
|
|
62
80
|
export type Svg = React.FC<React.SVGProps<SVGElement>>
|
|
63
81
|
|
|
64
82
|
/*
|
package/util.js
CHANGED
|
@@ -35,7 +35,7 @@ let scrollbarCache
|
|
|
35
35
|
let axiosNonce
|
|
36
36
|
|
|
37
37
|
/**
|
|
38
|
-
* Returns
|
|
38
|
+
* Returns a monastery schema which matches the Google autocomplete output
|
|
39
39
|
*/
|
|
40
40
|
export function addressSchema () {
|
|
41
41
|
// Google autocomplete should return the following object
|
|
@@ -1310,6 +1310,7 @@ export function parseFilters(query, config) {
|
|
|
1310
1310
|
* }
|
|
1311
1311
|
* @param {{ fieldsFlattened: object, name: string }} model - The Monastery model
|
|
1312
1312
|
* @param {number} [limit=10]
|
|
1313
|
+
* @param {boolean} [hasMore] - returns an extra row to signal there are more pages
|
|
1313
1314
|
* @example returned object (using the examples above):
|
|
1314
1315
|
* E.g. {
|
|
1315
1316
|
* limit: 10,
|
|
@@ -1317,7 +1318,7 @@ export function parseFilters(query, config) {
|
|
|
1317
1318
|
* sort: { createdAt: 1 },
|
|
1318
1319
|
* }
|
|
1319
1320
|
*/
|
|
1320
|
-
export function parseSortOptions(query, model, limit = 10) {
|
|
1321
|
+
export function parseSortOptions(query, model, limit = 10, hasMore) {
|
|
1321
1322
|
const page = parseInt(query.page || '') || 1
|
|
1322
1323
|
|
|
1323
1324
|
// Validate sortBy value
|
|
@@ -1330,7 +1331,7 @@ export function parseSortOptions(query, model, limit = 10) {
|
|
|
1330
1331
|
const sort = sortBy === 'createdAt' && !query.sort ? -1 : (parseInt(query.sort || '') || 1)
|
|
1331
1332
|
|
|
1332
1333
|
return {
|
|
1333
|
-
limit: limit + 1
|
|
1334
|
+
limit: hasMore ? limit + 1 : limit,
|
|
1334
1335
|
skip: page > 1 ? (page - 1) * limit : undefined,
|
|
1335
1336
|
sort: {
|
|
1336
1337
|
[sortBy]: sort,
|