@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,6 +1,6 @@
1
1
  {
2
2
  "name": "@colisweb/rescript-toolkit",
3
- "version": "4.18.4",
3
+ "version": "4.18.5",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "clean": "rescript clean",
@@ -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
- open Browser
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
- RescriptReactRouter.replace(
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
- RescriptReactRouter.replace(
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
  )