@colisweb/rescript-toolkit 4.1.1 → 4.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/locale/fr.json CHANGED
@@ -109,6 +109,11 @@
109
109
  "defaultMessage": "Le champ doit avoir au maximum {value} caractères.",
110
110
  "message": "Le champ doit avoir au maximum {value} caractères."
111
111
  },
112
+ {
113
+ "id": "_9f118046",
114
+ "defaultMessage": "Doit être un nombre compris entre 0 et 1 en excluant 0 (exemples: '0.1' '0.85' '1')",
115
+ "message": "Doit être un nombre compris entre 0 et 1 en excluant 0 (exemples: '0.1' '0.85' '1')"
116
+ },
112
117
  {
113
118
  "id": "_9fc912ee",
114
119
  "defaultMessage": "Lundi",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@colisweb/rescript-toolkit",
3
- "version": "4.1.1",
3
+ "version": "4.2.0",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "clean": "rescript clean",
@@ -6,6 +6,9 @@ module Msg = {
6
6
  let requiredPosInt = {defaultMessage: "Doit etre un entier positif"}
7
7
  let requiredPosIntOrFloat = {
8
8
  defaultMessage: "Doit être un entier positif ou un nombre a virgule",
9
+ }
10
+ let requiredRatio = {
11
+ defaultMessage: "Doit être un nombre compris entre 0 et 1 en excluant 0 (exemples: '0.1' '0.85' '1')",
9
12
  }
10
13
  let wrongFormat = {defaultMessage: "Mauvais format (req: {exemple})"}
11
14
  let maxNumberOfPackets = {defaultMessage: "Nbr colis"}
@@ -105,6 +108,16 @@ let requiredStrictPosFloat = (intl, value) => {
105
108
  }
106
109
  }
107
110
 
111
+ let requiredRatio = (intl, value) => {
112
+ switch value {
113
+ | "" => Some(Intl.formatMessage(intl, Msg.requiredValue))
114
+ | value
115
+ if !Toolkit__Utils_Regex.Test.isPositiveIntOrFloat(value) || value->Float.fromString === Some(0.) || value->Float.fromString->Option.getWithDefault(2.) > 1. =>
116
+ Some(Intl.formatMessage(intl, Msg.requiredRatio))
117
+ | _ => None
118
+ }
119
+ }
120
+
108
121
  let requiredFloat = (intl, value) => {
109
122
  switch value->Js.String2.split("-") {
110
123
  | _ if value === "" => Some(Intl.formatMessage(intl, Msg.requiredValue))
@@ -13,6 +13,7 @@ module Header = {
13
13
  ~actionDisabled: option<bool>=?,
14
14
  ~containerClassName="",
15
15
  ~buttonTestId="",
16
+ ~buttonColor=#info,
16
17
  ) =>
17
18
  <div className={cx(["flex flex-row items-center mb-4", containerClassName])}>
18
19
  <div
@@ -26,7 +27,7 @@ module Header = {
26
27
  <Toolkit__Ui_Button
27
28
  variant=#pill
28
29
  size=#xs
29
- color=#info
30
+ color=buttonColor
30
31
  onClick={_ => event()}
31
32
  testId={buttonTestId}
32
33
  disabled={actionDisabled->Option.getWithDefault(false)}
@@ -12,6 +12,7 @@ module Header: {
12
12
  ~actionDisabled: bool=?,
13
13
  ~containerClassName: string=?,
14
14
  ~buttonTestId: string=?,
15
+ ~buttonColor: Toolkit__Ui_Button.color=?,
15
16
  ) => React.element
16
17
  }
17
18