@colisweb/rescript-toolkit 4.18.4 → 4.18.5
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/package.json
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
open ReactIntl
|
|
2
|
+
open Browser
|
|
2
3
|
|
|
3
4
|
type state = {
|
|
4
5
|
timeslot: Toolkit__Decoders.DatetimeTimeSlot.t,
|
|
@@ -16,6 +17,24 @@ type queryParams = {
|
|
|
16
17
|
selectedDay: Toolkit__Decoders.Option.t<Toolkit__Decoders.Date.t>,
|
|
17
18
|
}
|
|
18
19
|
|
|
20
|
+
let updateSearchParams = (state: state) => {
|
|
21
|
+
let search = Location.location->Location.search->Js.String2.sliceToEnd(~from=1)
|
|
22
|
+
let searchParams = URLSearchParams.make(search)
|
|
23
|
+
|
|
24
|
+
searchParams->URLSearchParams.set(
|
|
25
|
+
"start",
|
|
26
|
+
state.timeslot.start->DateFns.formatWithPattern("yyyy-MM-dd"),
|
|
27
|
+
)
|
|
28
|
+
state.selectedDay->Option.forEach(selectedDay => {
|
|
29
|
+
searchParams->URLSearchParams.set(
|
|
30
|
+
"selectedDay",
|
|
31
|
+
selectedDay->DateFns.formatWithPattern("yyyy-MM-dd"),
|
|
32
|
+
)
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
RescriptReactRouter.replace("?" ++ searchParams->URLSearchParams.toString())
|
|
36
|
+
}
|
|
37
|
+
|
|
19
38
|
@react.component
|
|
20
39
|
let make = (~initialStart=?, ~selectedDay=?, ~children: state => React.element) => {
|
|
21
40
|
let {isSm} = Toolkit__Hooks.useMediaQuery()
|
|
@@ -57,22 +76,7 @@ let make = (~initialStart=?, ~selectedDay=?, ~children: state => React.element)
|
|
|
57
76
|
),
|
|
58
77
|
},
|
|
59
78
|
({state}) => {
|
|
60
|
-
|
|
61
|
-
let search = Location.location->Location.search->Js.String2.sliceToEnd(~from=1)
|
|
62
|
-
let searchParams = URLSearchParams.make(search)
|
|
63
|
-
|
|
64
|
-
searchParams->URLSearchParams.set(
|
|
65
|
-
"start",
|
|
66
|
-
state.timeslot.start->DateFns.formatWithPattern("yyyy-MM-dd"),
|
|
67
|
-
)
|
|
68
|
-
state.selectedDay->Option.forEach(selectedDay => {
|
|
69
|
-
searchParams->URLSearchParams.set(
|
|
70
|
-
"selectedDay",
|
|
71
|
-
selectedDay->DateFns.formatWithPattern("yyyy-MM-dd"),
|
|
72
|
-
)
|
|
73
|
-
})
|
|
74
|
-
|
|
75
|
-
RescriptReactRouter.replace("?" ++ searchParams->URLSearchParams.toString())
|
|
79
|
+
updateSearchParams(state)
|
|
76
80
|
None
|
|
77
81
|
},
|
|
78
82
|
)
|
|
@@ -88,18 +92,7 @@ let make = (~initialStart=?, ~selectedDay=?, ~children: state => React.element)
|
|
|
88
92
|
),
|
|
89
93
|
},
|
|
90
94
|
({state}) => {
|
|
91
|
-
|
|
92
|
-
Qs.stringifyWithParams(
|
|
93
|
-
{
|
|
94
|
-
start: Some(state.timeslot.start),
|
|
95
|
-
selectedDay: state.selectedDay,
|
|
96
|
-
}->queryParams_encode,
|
|
97
|
-
{
|
|
98
|
-
addQueryPrefix: true,
|
|
99
|
-
serializeDate: d => d->DateFns.formatWithPattern("yyyy-MM-dd"),
|
|
100
|
-
},
|
|
101
|
-
),
|
|
102
|
-
)
|
|
95
|
+
updateSearchParams(state)
|
|
103
96
|
None
|
|
104
97
|
},
|
|
105
98
|
)
|
|
@@ -107,18 +100,7 @@ let make = (~initialStart=?, ~selectedDay=?, ~children: state => React.element)
|
|
|
107
100
|
UpdateWithSideEffects(
|
|
108
101
|
{...state, selectedDay: date},
|
|
109
102
|
({state}) => {
|
|
110
|
-
|
|
111
|
-
Qs.stringifyWithParams(
|
|
112
|
-
{
|
|
113
|
-
start: Some(state.timeslot.start),
|
|
114
|
-
selectedDay: state.selectedDay,
|
|
115
|
-
}->queryParams_encode,
|
|
116
|
-
{
|
|
117
|
-
addQueryPrefix: true,
|
|
118
|
-
serializeDate: d => d->DateFns.formatWithPattern("yyyy-MM-dd"),
|
|
119
|
-
},
|
|
120
|
-
),
|
|
121
|
-
)
|
|
103
|
+
updateSearchParams(state)
|
|
122
104
|
None
|
|
123
105
|
},
|
|
124
106
|
)
|