@colisweb/rescript-toolkit 4.18.3 → 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,18 +76,7 @@ let make = (~initialStart=?, ~selectedDay=?, ~children: state => React.element)
|
|
|
57
76
|
),
|
|
58
77
|
},
|
|
59
78
|
({state}) => {
|
|
60
|
-
|
|
61
|
-
Qs.stringifyWithParams(
|
|
62
|
-
{
|
|
63
|
-
start: Some(state.timeslot.start),
|
|
64
|
-
selectedDay: state.selectedDay,
|
|
65
|
-
}->queryParams_encode,
|
|
66
|
-
{
|
|
67
|
-
addQueryPrefix: true,
|
|
68
|
-
serializeDate: d => d->DateFns.formatWithPattern("yyyy-MM-dd"),
|
|
69
|
-
},
|
|
70
|
-
),
|
|
71
|
-
)
|
|
79
|
+
updateSearchParams(state)
|
|
72
80
|
None
|
|
73
81
|
},
|
|
74
82
|
)
|
|
@@ -84,18 +92,7 @@ let make = (~initialStart=?, ~selectedDay=?, ~children: state => React.element)
|
|
|
84
92
|
),
|
|
85
93
|
},
|
|
86
94
|
({state}) => {
|
|
87
|
-
|
|
88
|
-
Qs.stringifyWithParams(
|
|
89
|
-
{
|
|
90
|
-
start: Some(state.timeslot.start),
|
|
91
|
-
selectedDay: state.selectedDay,
|
|
92
|
-
}->queryParams_encode,
|
|
93
|
-
{
|
|
94
|
-
addQueryPrefix: true,
|
|
95
|
-
serializeDate: d => d->DateFns.formatWithPattern("yyyy-MM-dd"),
|
|
96
|
-
},
|
|
97
|
-
),
|
|
98
|
-
)
|
|
95
|
+
updateSearchParams(state)
|
|
99
96
|
None
|
|
100
97
|
},
|
|
101
98
|
)
|
|
@@ -103,18 +100,7 @@ let make = (~initialStart=?, ~selectedDay=?, ~children: state => React.element)
|
|
|
103
100
|
UpdateWithSideEffects(
|
|
104
101
|
{...state, selectedDay: date},
|
|
105
102
|
({state}) => {
|
|
106
|
-
|
|
107
|
-
Qs.stringifyWithParams(
|
|
108
|
-
{
|
|
109
|
-
start: Some(state.timeslot.start),
|
|
110
|
-
selectedDay: state.selectedDay,
|
|
111
|
-
}->queryParams_encode,
|
|
112
|
-
{
|
|
113
|
-
addQueryPrefix: true,
|
|
114
|
-
serializeDate: d => d->DateFns.formatWithPattern("yyyy-MM-dd"),
|
|
115
|
-
},
|
|
116
|
-
),
|
|
117
|
-
)
|
|
103
|
+
updateSearchParams(state)
|
|
118
104
|
None
|
|
119
105
|
},
|
|
120
106
|
)
|
package/src/vendors/Browser.res
CHANGED
|
@@ -105,6 +105,18 @@ module URL = {
|
|
|
105
105
|
external setSearchParams: (t, string, string) => unit = "set"
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
+
module URLSearchParams = {
|
|
109
|
+
type t
|
|
110
|
+
|
|
111
|
+
@new
|
|
112
|
+
external make: string => t = "URLSearchParams"
|
|
113
|
+
|
|
114
|
+
@send
|
|
115
|
+
external set: (t, string, string) => unit = "set"
|
|
116
|
+
@send
|
|
117
|
+
external toString: (t, unit) => string = "toString"
|
|
118
|
+
}
|
|
119
|
+
|
|
108
120
|
module History = {
|
|
109
121
|
type t
|
|
110
122
|
|
package/src/vendors/Browser.resi
CHANGED
|
@@ -78,6 +78,18 @@ module URL: {
|
|
|
78
78
|
external setSearchParams: (t, string, string) => unit = "set"
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
+
module URLSearchParams: {
|
|
82
|
+
type t
|
|
83
|
+
|
|
84
|
+
@new
|
|
85
|
+
external make: string => t = "URLSearchParams"
|
|
86
|
+
|
|
87
|
+
@send
|
|
88
|
+
external set: (t, string, string) => unit = "set"
|
|
89
|
+
@send
|
|
90
|
+
external toString: (t, unit) => string = "toString"
|
|
91
|
+
}
|
|
92
|
+
|
|
81
93
|
module History: {
|
|
82
94
|
type t
|
|
83
95
|
|