diff --git a/package.json b/package.json
index f71414a..b008666 100644
--- a/package.json
+++ b/package.json
@@ -19,6 +19,7 @@
"react-dom": "^18.2.0",
"react-full-screen": "^1.1.1",
"react-image-marker": "^1.2.0",
+ "react-number-format": "^5.4.0",
"react-range-slider-input": "^3.0.7",
"react-router-dom": "^6.23.1",
"react-swipeable": "^7.0.1",
diff --git a/src/calc/formatNumber.ts b/src/calc/formatNumber.ts
new file mode 100644
index 0000000..300190a
--- /dev/null
+++ b/src/calc/formatNumber.ts
@@ -0,0 +1,19 @@
+const formatNumber = (
+ num: number,
+ separator: string,
+ countToSeparate: number,
+ firstIndexSeparator: number
+) => {
+ const notFormated = [];
+ const text = `${num}`;
+ for (let i = 0; i < text.length; i++) {
+ if (i % countToSeparate === firstIndexSeparator) {
+ notFormated.push(separator);
+ }
+ notFormated.push(text[i]);
+ }
+
+ return notFormated.join("");
+};
+
+export { formatNumber };
diff --git a/src/components/MasterSelector.tsx b/src/components/MasterSelector.tsx
new file mode 100644
index 0000000..35c4000
--- /dev/null
+++ b/src/components/MasterSelector.tsx
@@ -0,0 +1,38 @@
+import { NumericFormat, PatternFormat } from "react-number-format";
+import ChevronDownIcon from "./icons/ChevronDownIcon";
+
+interface IOptions {
+ id: string;
+ value: string;
+ placeholder: string;
+}
+
+interface MasterSelectorProps {
+ title: string;
+ isError?: false;
+ options?: IOptions[];
+}
+
+// const formatPhone =
+
+const MasterSelector = ({ title }: MasterSelectorProps) => {
+ return (
+
+ );
+};
+
+export default MasterSelector;
diff --git a/src/components/MultiRangeSlider.tsx b/src/components/MultiRangeSlider.tsx
index 18aa4ad..315bdc7 100644
--- a/src/components/MultiRangeSlider.tsx
+++ b/src/components/MultiRangeSlider.tsx
@@ -1,5 +1,6 @@
import { useRef, useEffect } from "react";
import RangeSlider from "react-range-slider-input";
+import { NumericFormat } from "react-number-format";
import "./multiRangeSlider.css";
import { IMultirangeSlider } from "../types/multirangeSlider";
@@ -20,7 +21,7 @@ const MultiRangeSlider = ({
};
const handleOnFirstInputChange = (e: React.ChangeEvent) => {
- const value = Number(e.target.value);
+ const value = Number(e.target.value.split(",").join(""));
if (
value >= multirangeSlider.minValue &&
value <= multirangeSlider.maxValue
@@ -36,7 +37,7 @@ const MultiRangeSlider = ({
const handleOnSecondInputChange = (
e: React.ChangeEvent
) => {
- const value = Number(e.target.value);
+ const value = Number(e.target.value.split(",").join(""));
if (
value >= multirangeSlider.minValue &&
value <= multirangeSlider.maxValue
@@ -71,22 +72,36 @@ const MultiRangeSlider = ({
);
diff --git a/src/components/icons/ChevronDownIcon.tsx b/src/components/icons/ChevronDownIcon.tsx
index 670e128..56da840 100644
--- a/src/components/icons/ChevronDownIcon.tsx
+++ b/src/components/icons/ChevronDownIcon.tsx
@@ -1,13 +1,19 @@
interface ChevronDownIconProps {
className?: string;
+ width?: string;
+ height?: string;
}
-const ChevronDownIcon = ({ className }: ChevronDownIconProps) => {
+const ChevronDownIcon = ({
+ className,
+ width = "24",
+ height = "24",
+}: ChevronDownIconProps) => {
return (