+
{ e.stopPropagation(); }}>
+ ×
+
+ {children}
+
+
+ );
+};
+
+export default Modal;
diff --git a/frontend/src/shared/ui/Spinner/index.ts b/frontend/src/shared/ui/Spinner/index.ts
new file mode 100644
index 0000000..b8aa75d
--- /dev/null
+++ b/frontend/src/shared/ui/Spinner/index.ts
@@ -0,0 +1 @@
+export { default as Spinner } from './ui/Spinner.ui';
diff --git a/frontend/src/shared/ui/Spinner/ui/Spinner.module.css b/frontend/src/shared/ui/Spinner/ui/Spinner.module.css
new file mode 100644
index 0000000..aaf9610
--- /dev/null
+++ b/frontend/src/shared/ui/Spinner/ui/Spinner.module.css
@@ -0,0 +1,19 @@
+.loader {
+ width: 48px;
+ height: 48px;
+ border: 5px solid dimgrey;
+ border-bottom-color: transparent;
+ border-radius: 50%;
+ display: inline-block;
+ box-sizing: border-box;
+ animation: rotation 1s linear infinite;
+}
+
+@keyframes rotation {
+ 0% {
+ transform: rotate(0deg);
+ }
+ 100% {
+ transform: rotate(360deg);
+ }
+}
diff --git a/frontend/src/shared/ui/Spinner/ui/Spinner.ui.tsx b/frontend/src/shared/ui/Spinner/ui/Spinner.ui.tsx
new file mode 100644
index 0000000..5b0d890
--- /dev/null
+++ b/frontend/src/shared/ui/Spinner/ui/Spinner.ui.tsx
@@ -0,0 +1,7 @@
+import classes from './Spinner.module.css';
+
+const Spinner = () => (
+