From 4c65362cce8b78bc4bde0231f76d915ff00ea256 Mon Sep 17 00:00:00 2001 From: VyacheslavShtyrlin Date: Mon, 13 Feb 2023 23:18:11 +0500 Subject: [PATCH] added DraggableGallery --- package-lock.json | 36 +++++++ package.json | 2 + .../CalculatorComponent.css | 5 + .../CalculatorComponent.js | 10 +- .../components/InputNumber/InputNumber.js | 2 +- .../DraggableGallery/DraggableGallery.css | 80 ++++++++++++++++ .../DraggableGallery/DraggableGallery.js | 37 +++++++- .../components/Gallery/Card/Card.js | 52 +++++++++++ .../components/Gallery/Gallery.css | 68 ++++++++++++++ .../components/Gallery/Gallery.js | 88 ++++++++++++++++++ .../components/Gallery/movebutton.svg | 8 ++ .../components/Gallery/planFlat.png | Bin 0 -> 21271 bytes src/components/Main/Main.css | 3 - src/components/Main/Main.js | 2 + 14 files changed, 381 insertions(+), 12 deletions(-) create mode 100644 src/components/CalculatorComponent/CalculatorComponent.css create mode 100644 src/components/DraggableGallery/DraggableGallery.css create mode 100644 src/components/DraggableGallery/components/Gallery/Card/Card.js create mode 100644 src/components/DraggableGallery/components/Gallery/Gallery.css create mode 100644 src/components/DraggableGallery/components/Gallery/Gallery.js create mode 100644 src/components/DraggableGallery/components/Gallery/movebutton.svg create mode 100644 src/components/DraggableGallery/components/Gallery/planFlat.png diff --git a/package-lock.json b/package-lock.json index b429b95..ee6c27d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,6 +22,8 @@ "react-number-format": "^5.1.2", "react-scripts": "5.0.1", "react-slider": "^2.0.4", + "react-use-draggable-scroll": "^0.2.3", + "use-draggable-scroll": "^0.1.0", "web-vitals": "^2.1.4" } }, @@ -14561,6 +14563,17 @@ "react": "^16 || ^17 || ^18" } }, + "node_modules/react-use-draggable-scroll": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/react-use-draggable-scroll/-/react-use-draggable-scroll-0.2.3.tgz", + "integrity": "sha512-sHQFlRR4QMzY4sGEAWZO2hzYi9T5aJaGR36lkOg4zhEWl01ZMkL/a59ydJeo5dR9VX0yswgJIsDe15rXjnR93w==", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=16" + } + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -16331,6 +16344,17 @@ "requires-port": "^1.0.0" } }, + "node_modules/use-draggable-scroll": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/use-draggable-scroll/-/use-draggable-scroll-0.1.0.tgz", + "integrity": "sha512-mX6nT3cUqOTtA+8QUH9HfdKtzI6Oquj9QIB0wALWZYmWogNQ746MaUcmqKOKCIlt2UH6egxhSKNPiSlfEqmKhA==", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=16" + } + }, "node_modules/use-sync-external-store": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", @@ -27617,6 +27641,12 @@ "prop-types": "^15.8.1" } }, + "react-use-draggable-scroll": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/react-use-draggable-scroll/-/react-use-draggable-scroll-0.2.3.tgz", + "integrity": "sha512-sHQFlRR4QMzY4sGEAWZO2hzYi9T5aJaGR36lkOg4zhEWl01ZMkL/a59ydJeo5dR9VX0yswgJIsDe15rXjnR93w==", + "requires": {} + }, "read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -28917,6 +28947,12 @@ "requires-port": "^1.0.0" } }, + "use-draggable-scroll": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/use-draggable-scroll/-/use-draggable-scroll-0.1.0.tgz", + "integrity": "sha512-mX6nT3cUqOTtA+8QUH9HfdKtzI6Oquj9QIB0wALWZYmWogNQ746MaUcmqKOKCIlt2UH6egxhSKNPiSlfEqmKhA==", + "requires": {} + }, "use-sync-external-store": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", diff --git a/package.json b/package.json index e0eb319..bd5120f 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,8 @@ "react-number-format": "^5.1.2", "react-scripts": "5.0.1", "react-slider": "^2.0.4", + "react-use-draggable-scroll": "^0.2.3", + "use-draggable-scroll": "^0.1.0", "web-vitals": "^2.1.4" }, "scripts": { diff --git a/src/components/CalculatorComponent/CalculatorComponent.css b/src/components/CalculatorComponent/CalculatorComponent.css new file mode 100644 index 0000000..06dfe9a --- /dev/null +++ b/src/components/CalculatorComponent/CalculatorComponent.css @@ -0,0 +1,5 @@ +.calculator-layout { + display: flex; + flex-direction: row; + gap: 32px; +} diff --git a/src/components/CalculatorComponent/CalculatorComponent.js b/src/components/CalculatorComponent/CalculatorComponent.js index 450e21d..ba4c179 100644 --- a/src/components/CalculatorComponent/CalculatorComponent.js +++ b/src/components/CalculatorComponent/CalculatorComponent.js @@ -1,15 +1,17 @@ + +import './CalculatorComponent.css' import { useEffect } from "react"; import { calcSlice } from "../../store/reducers/calcSlice"; import { useSelector, useDispatch } from "react-redux"; import { InputSelect } from "./components/InputSelect/InputSelect"; -import { InputNumber } from "../InputNumber/InputNumber"; +import { InputNumber } from "./components/InputNumber/InputNumber"; import { AveragePriceApartment } from "./components/AveragePriceApartment/AveragePriceApartment"; import { AverageSquareApartment } from "./components/AverageSquareApartment/AverageSquareApartment"; import { ConsultationOffice } from "./components/ConsultationOffice/ConsultationOffice"; import { ConsultationReserv } from "./components/ConsultationReserv/ConsultationReserv"; import { Sales } from "./components/Sales/Sales"; -import { ResultBlock } from "../ResultBlock/ResultBlock"; +import { ResultBlock } from "./components/ResultBlock/ResultBlock"; const INITIAL_REGION = "e5b7edfb-17ec-475f-8631-bc796ad19909"; @@ -30,7 +32,7 @@ export const CalculatorComponent = ({ }) => { }; return ( - <> +
{
- +
); }; diff --git a/src/components/CalculatorComponent/components/InputNumber/InputNumber.js b/src/components/CalculatorComponent/components/InputNumber/InputNumber.js index ce79715..2cc5bf8 100644 --- a/src/components/CalculatorComponent/components/InputNumber/InputNumber.js +++ b/src/components/CalculatorComponent/components/InputNumber/InputNumber.js @@ -1,6 +1,6 @@ import "./InputNumber.css"; import CurrencyInput from "react-currency-input-field"; -import { calcSlice } from "../../store/reducers/calcSlice"; +import { calcSlice } from "../../../../store/reducers/calcSlice"; import { useDispatch } from "react-redux"; import { useState } from "react"; diff --git a/src/components/DraggableGallery/DraggableGallery.css b/src/components/DraggableGallery/DraggableGallery.css new file mode 100644 index 0000000..ef6ea36 --- /dev/null +++ b/src/components/DraggableGallery/DraggableGallery.css @@ -0,0 +1,80 @@ +.legend-layout { + margin-top: 50px; + width: 1408px; + height: 586px; + color: #f7f7f7; + + background: #17191d; + border-radius: 8px; + display: flex; + flex-direction: row; +} + +.legend-container { + width: 216px; + display: flex; + flex-direction: column; + padding: 48px 0 100px 48px; + justify-content: space-between; +} + +.legend-caption { + margin: 0; + font-style: normal; + font-weight: 400; + font-size: 24px; + line-height: 135%; +} + +.legend { + display: flex; + flex-direction: column; + font-style: normal; + font-weight: 400; + font-size: 15px; + line-height: 145%; + /* identical to box height, or 22px */ + + font-feature-settings: "tnum" on, "lnum" on; +} + +.legend-item { + height: 46px; + padding: 12px 32px; + box-sizing: border-box; + border-radius: 2px 0px 0px 2px; +} + +.legend-item:nth-child(odd) { + background: #22252a; +} + +.gallery { + display: flex; + width: fit-content; + overflow-x: scroll; + height: 96%; + box-shadow: inset 4px 3px 6px rgba(0, 0, 0, 0.15); + +} + +.gallery::-webkit-scrollbar-track { + background: #22252a; + border-radius: 1px; + cursor: pointer; +} + +.gallery::-webkit-scrollbar { + cursor: pointer; + + height: 4px; +} + +.gallery::-webkit-scrollbar-thumb { + cursor: pointer; + background: #454a54; + border-radius: 8px; + height: 4px; +} + + diff --git a/src/components/DraggableGallery/DraggableGallery.js b/src/components/DraggableGallery/DraggableGallery.js index 312e9c7..d547c5b 100644 --- a/src/components/DraggableGallery/DraggableGallery.js +++ b/src/components/DraggableGallery/DraggableGallery.js @@ -1,5 +1,34 @@ +import "./DraggableGallery.css"; + +import { Gallery } from "./components/Gallery/Gallery"; +import { useDraggable } from "react-use-draggable-scroll"; +import { useRef } from "react"; + export const DraggableGallery = () => { - return (
- -
) -} \ No newline at end of file + const arrayLegend = ["Тип", "Площадь", "Стоимость", "Этаж", "Cрок Сдачи"]; + const ref = useRef(); + + const { events } = useDraggable(ref, { + safeDisplacement: 20, // specify the drag sensitivity + }); + + console.log(events) + + return ( +
+
+

Избранное

+
+ {arrayLegend.map((i, index) => ( +
+
{i}
+
+ ))} +
+
+
+ +
+
+ ); +}; diff --git a/src/components/DraggableGallery/components/Gallery/Card/Card.js b/src/components/DraggableGallery/components/Gallery/Card/Card.js new file mode 100644 index 0000000..f036c5e --- /dev/null +++ b/src/components/DraggableGallery/components/Gallery/Card/Card.js @@ -0,0 +1,52 @@ +import { + useMotionValue, + Reorder, + motion, + useDragControls, +} from "framer-motion"; +import { useEffect, useState } from "react"; + +export const Card = ({ card }) => { + const [isClicked, setIsClicked] = useState(false); + const dragControls = useDragControls(); + const pointArray = Array(6).fill(0); + const onDrag = (e) => { + dragControls.start(e, { snapToCursor: true }); + }; + + return ( + +
+
+ планнировка +
+
+
{card.type}
+
+ +
+
{card.square}
+
+ +
+
{card.price}
+
+ +
+
{card.floor}
+
+ +
+
{card.date}
+
+
+ +
onDrag(e)} className="drag-button"> + {pointArray.map((i, index) => ( +
+ ))} +
+
+
+ ); +}; diff --git a/src/components/DraggableGallery/components/Gallery/Gallery.css b/src/components/DraggableGallery/components/Gallery/Gallery.css new file mode 100644 index 0000000..99e49ad --- /dev/null +++ b/src/components/DraggableGallery/components/Gallery/Gallery.css @@ -0,0 +1,68 @@ +.card-container { + display: flex; +} + +.card { + width: 256px; +} + +.card-image-container { + box-sizing: border-box; + padding: 13.5px; +} + +.card-caption { + font-style: normal; + font-weight: 400; + font-size: 15px; + line-height: 145%; + /* identical to box height, or 22px */ + + font-feature-settings: "tnum" on, "lnum" on; + + padding: 12px 32px; + box-sizing: border-box; +} + +.card-caption:nth-child(even) { + background: #22252a; +} + +.card-image { +} + +.card-button-container { + display: flex; + align-items: center; + justify-content: center; + height: 46px; + width: 100%; +} + +.drag-button { + cursor: grab; + border-radius: 2px; + box-sizing: border-box; + padding: 4px 10px; + display: flex; + flex-direction: row; + gap: 6px; + width: 40px; + flex-wrap: wrap; + height: 16px; + background-color: transparent; +} + +.point { + background: #f7f7f7; + width: 2px; + height: 2px; + border-radius: 50%; +} + +.list { + list-style: none; + display: flex; + margin: 0; + padding: 0; +} diff --git a/src/components/DraggableGallery/components/Gallery/Gallery.js b/src/components/DraggableGallery/components/Gallery/Gallery.js new file mode 100644 index 0000000..d9281b8 --- /dev/null +++ b/src/components/DraggableGallery/components/Gallery/Gallery.js @@ -0,0 +1,88 @@ +import "./Gallery.css"; +import plan from "./planFlat.png"; +import { Reorder, useDragControls } from "framer-motion"; +import { useState } from "react"; +import { Card } from "./Card/Card"; + +const arrayCards = [ + { + id: 0, + type: "3-комнатная", + square: "133,1 м2", + price: "11 564 400 ₽", + floor: "5 из 9", + date: "I квартал 2024", + img: plan, + }, + + { + id: 1, + type: "2-комнатная", + square: "133,1 м2", + price: "11 564 400 ₽", + floor: "5 из 9", + date: "I квартал 2024", + img: plan, + }, + + { + id: 2, + + type: "1-комнатная", + square: "133,1 м2", + price: "11 564 400 ₽", + floor: "5 из 9", + date: "I квартал 2024", + img: plan, + }, + + { + id: 3, + + type: "3-комнатная", + square: "133,1 м2", + price: "11 564 400 ₽", + floor: "5 из 9", + date: "I квартал 2024", + img: plan, + }, + + { + id: 4, + + type: "3-комнатная", + square: "133,1 м2", + price: "11 564 400 ₽", + floor: "5 из 9", + date: "I квартал 2024", + img: plan, + }, + + { + id: 5, + + type: "3-комнатная", + square: "133,1 м2", + price: "11 564 400 ₽", + floor: "5 из 9", + date: "I квартал 2024", + img: plan, + }, +]; +export const Gallery = ({}) => { + const [cards, setCards] = useState(arrayCards); + + return ( + + {cards.map((card, index) => ( + + ))} + + ); +}; diff --git a/src/components/DraggableGallery/components/Gallery/movebutton.svg b/src/components/DraggableGallery/components/Gallery/movebutton.svg new file mode 100644 index 0000000..a737b65 --- /dev/null +++ b/src/components/DraggableGallery/components/Gallery/movebutton.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/components/DraggableGallery/components/Gallery/planFlat.png b/src/components/DraggableGallery/components/Gallery/planFlat.png new file mode 100644 index 0000000000000000000000000000000000000000..ed6dd5f3390c69e7f034d285abc89f3c7c134464 GIT binary patch literal 21271 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 z z&WQ+Z+V+AMox6$h3b0fWYoma0OExN@h?)Mcz-0Yw9;skvoRGWbZL4AI6lzhChT{@A zJa9)|{j)d`4K?CV&Yvk$FXMg#Wgk;_5__vdl(+YpibZOIO$CkA{A&ageM~w=u}w!3h5j-Ttm1mbr0>F6{;R>gIH{pLd-ge@p=h5l zZPJ(t_jH|aJC6;4s~U$AQrde-aRMK$BqV-sw`0uJb@Jdsrv95Uwc~qU+e5x32~?4K zF~`2rmN(%OL?8ESAMQ%ApoPND7(76}?%}gV^P7_E;VPEcg20Kbl9I>up?n&1wd~lzHys4J|sXrqpSWon$U;;v~Z-Dr`Lu1 z#wyw-;zjdStGLcQN5d1XP`_Nd|2V(W0 zj_!Af29#-QA^J#M7JIbYjRz2@6GT?VxGUOa;0MjHZsTxWIXz6D`g^h1rrtrPCW|S3 zU*+?of+Do;1&y!s`9^n6q9+g}bv?LTiZ)a~&>dJq2V2$ShFx;mLL4{Uiv5(0(OOIL z3K??$=&pX=+WzE~7LbWGK7Z;7Z1)Blo&B!1xYAdtF=1JfBM++54=bkUUFOK$~Q z9ENXv-Va48Z3uN(Y-Vo=yM3MRu(Pp7Wg9{Z_hSf#0!UK$@`B$1ZxgUH`_9j&MsNI` z;bGs6y=4*&!@qwzP@~7NAr7w8NNtah&<5iq&91`yiB_BXL$uU|2eLlOd}T9;dW*1` zgAnAExo21PWvcyS=YJ|-J0!2_%z4@}P#^DdKPYutJp2Y7* z@dwrFJKoR*G%i~dU-Z-Vl}|cnnEud2y7jA16`u{^1F1A<(V=N(Eg0+j$Vu#J#32t# z%vf&pqU((9>{Ha|m1Q)Vt9lx5BBDnxx`G=WNT-!bImZMISCn z!QFI+cD5XRo(=`vbN-ahTkmFR`pfTk&1q>5kB>36`W^qsK01|YXU&@+f*n6FDit@- zkYTnf4?1~(PAw&gNilb56K?wzB6^YCH8cBX@XLFcGM}ht!|KJQlh`?t{SOVwx#>gm z21JmnGgSF+oQN096h+Q`-;tF6jIJCq%~Pa4Q^Eppt<59tFh>=2ENl(t$}Pd8O#2!L z6cHS$rXk+D8(DVU5aLx1Y07OHgueCfI_CYPV z4=|1JX{cYlk6Jf>y?0cmPe2U3&jJ=$h2NOGUy^CQop#od3p-rPot%lpF)4h&kcb>v zr*^7$mIaH$HIEN~*5c$N`wb|x}mC(g0WOty{rPU7x1=!*d8U`s5 zJq0G3-|6J`@aySaF3ziD!~ZVWR_w|cXV2i4twc~@MPzW8+SkW5_^p^Uv@~~1#OY{q$R@j`LA6|Ps_Mrls^nj91=$IKp(eX~*M^OW z<-3nT=Uu&T)4Ujm2`i>&Z@zB}1F#pH>`*%Eky}8&!J6upKyN=D;igdfJEw-uqhoqp zuIXCzk_?)RDbJ%6qAE9k-ybmFNTQNj0iRgK)K-~5fZ$&wTw3Jh4t@lov{#r*h(+M zBLz3}vLsjcRYo_AEdeJZ`#<3F1PFhiIO<9R8K*vTjWK>`3}j(NjALY-sTUnqM282G z?4grnwtjT=*xLxl%PA^xKA}H1%sB{*ln*+mLhrG2ooKCBv+h=RNjcC=jEK zNnJ()YuWezrV}>FZN|_zDU$zMwz=N;7VfOztWS`b=VL3Py~5kHKFVY?UTryzW1PDa zb-o>8Wd?)xd4}(O{k~Pz;zplC6A!ZBr09IAiTbLD?CW9E1INxU_wVW!~fpykp@9zs@g>B#$`mkUbFbDC_BR1P169~5Xw5Rcf9SZxD~+?dj!(w-Ys?Eoh1QNU#gdi4@(P#2QL+B{K)ZcmXhtb<9QZQm#P9~8 z!bZDv^^sND?Qkvd=-zUfcKAtQB)Ls$lHZbs07Cy$A2vF5Jww1A@)0rkdz3nmPD#@G ze*SpuIk3|RN*_LtUThI4iu)8vzgH1VuOa0eAF6m;Hg5BZGAmMv+jPe1!}G1MauFk; z;lWoHf0IM~(MG2LQA*&1zF1Xm3C;PdskK(Yr~qKI@&xXI*!``i&fb_fC) zjBXk-l6LcM4PSS#s?v;uEO?W2i0A40&CYutF8iifP?~4y<^WaqqoO|2OxYt?a?Jf1 zRo@=P5dEEk?hS$S<1uyi>lyuOQF*uo@7&v&QGb5e-a+emGGYpU1}zhbNpBPe*l zd4FIZ2IwzeK=ppVcn$gEqAHY76_r~`RvC9&4f*VW>4ElESFNn6wP{WWE1e$h3DY^h zUj~i)=@qgPNnCy!a(Z)J@DuT)wDZ$eAeAnee(SSdbNZz#WzcYR!(9db<}>7; zg4bS?$J~u)Zs@2o%A-FR9Q$6Hd^4$xZPwhYTdwwly*OM-O}_PhZFi6kmkttP=D$wohTW7%y`Nl2DW|Y^ghgh#jE^h;(VYKDJY;1YBl14PU|)cwVX_#8)eDm z7d`&0z^jWvc0L_^FzK%6a(Uc!=@-Rbx$OPTHgs%`z-E9~17Qj3Y)zZOWj)s{3!__Mr)@qc3a;MLUoz(DEkWkvzPLaEKtElx)Cc&W{Drg8*}@XZ9I=9iF)wN5{PMzrTF9NmZWBxuJIfPmC&~|oC7*hh+!f>ispIt_GjgI1O8e;UFwo2 z=~@?R59-!ZKA$$x9g}2}rQ)7M$EZ*=`eQc1Z8^ueDVBT=|nB zZ0#g#z9Y0Um89zNOsStUb9a)a-;@UeO23gsLIsj-9hel+NfH#v`%U+t8V%8nfD>#; zK#+YF@GhD+`T?-gYILFT#uFiFq#INCN;dfT3~P;XlEnb84_4vXx6>FeZ034sc$c1= z)y?@GgjDi`!>V5MdUYyJ9sY`j)8&d9e=ys&$!Is|CcYclS>z(7UtPh>3@%~|!IU8O z?9SZdYwg~SI3Wz+e3SMj+!sMx>?QS^9sm%nl;jVFM(+C$$d4W?iFSQpFt^>hShDJh z-XpJG+{=@;F+ZT7f4lVNx;vP`%YOW#i}ts-q$mfqGua)(W6cc#n^f1fx7L7oV8YbJ z`*JsDb*~yal%bNHCWnI_%n#GTYM8))fx#> z{+#0Bc+8`ygxx|^n($iBcKwJqqop1Z+V6*igZfsJJ?T**Tj@VKVfMks&=}k0t zAiheVa;Wnc&+W7oYWj2DyZH?1;pu6oty-7W>>AGI^`0|3K+HMKZ70%fb5+>v2Z!}$ ztEDv5;W}+esu!y!a4*ZRfzPblzpbHZU9{SrL}YK`;?poxVBXmomkK|ehXh)+Ao4mf z7eMO_obTl(+0E2Mwd1MA+3x-q1%V?ZIOR-d@%JVJX|*@v>!!8QW^-4UVJtT4(8j(S zdJ$9_Jxq#R0a^N4>>=b~loKe=L_1c7n) zAX!(CaZ{aJono6WPNtXxUC8Q>b_Ip!&=H)eG5F*}qElh?xrzlu?ZA}4^pZ>OpqZ`1 zKDU8`;P%Iv;E2YY0)bAwGCbz#_ec*LbtrNU(uen>45r4neF7M zlZuP><{1-@~(C1=3wJ1eM~INl}2MX54q1l87XM~+@3yj>|wos7yXYT%3et4@0;n9 zm-dlY)~(H`TNeS9UwnjW>c%j6X+*Ufc%B6YpM+*_Lwnrho zhcVBMI2%nH)My3zyXz~;Pb$INe-SLIBka4mwu5r^=eYW5W*%1Q2e4AJi5%r?J#pfA zRCS}pKVnWq&RI1pqEvF6!byZ1II%g>I*H7k3sm&^BN&4nz4ajq%x0Oq{04hy2>J5? z3MN^n>!KvoN99p09~F8!Y_SYBK48rF^Pn?|pSezX0qAh&{(BY``}Ph%y#c+(9)Lsz zkdvTe&Al!#{}zxZ@s!W)g^%p>gG9ufq5FCAw~~T9vMvOJ;G?Qxn!j7MvXfblsGu)s zCo|BBAXHWrBaUUBt$26$tzFv=G=7z})$*miz1?|P3wJBlOv^)qzRwB2CcWR~!KJfp zaKVGx>X6#IAWj5@+IUcjgN7rIpk!X%KWZ3^SPD|?zQz-L?;tRryzaYzUVW|w!y3AK z^AWdseNBld|J9XA>T6#1EypF0DkfG&jVQtcGUNH`^;z(XsRofakyiRVs7P|0^oNYB z?eMnEZo`^%+0S#jeQFe6#3>DW>;k%^$V56^Y`u`aR0Hg-Sn|3#*VEjRhcSYpdHy_c z1gQpkp3w5I3Ylu5F(4umUEfmsCzAOELgTPX>%Dmd$ChQ_3vG68_7BNFZFGAU3nq5e z2v~(meIdps1fY)RZi@?a=E&dOC8L{mgHgEpGPPcAc?ov zA9VLb-6Rwn39|l?gRTbnML#5lAW{IoKPlzGnGF*VQMl^N-BU6zBdt60s*M^JCSy=* z;cYiUC=2^dlWa^(x#%2UDEj}A}@*5u8u#K<9F&RFsqnWEIYEI(+M z8aPdHnWf)TMH(_Oci!{|Wi_7q(b2Hah|>Ejwmyd6d4tq%~8+ zbJ$^x&wN4zOrJ$Tq43MdrlQ(v<$5h+nvv!8QZI|>BPqgMMb;z5U~SkeY;59sDeW`o zADwb@Lvq8{!@mULmaJXC(5hjL)FD|V#QNuHczdO{{tCz8yMM4l;3Y|C`GX>! zWfsDCBDCwiR7mI@qMnd@*XS@+lRBNR#uCmk&)=L}z~UMBbH%azxZCRTdMW`fl;kK& zpip#3gS3X`ibFQ7=Rz{13(3nuV)5d_I)3@CyZ~E-G-PQRKFj=M#qkI_m)Ft7{ozk- z5%l2}(QB+>AQ>pk`(usbuRWNOxEmU@7_IxU0@7nb~oWLpfIJd=SVv77|nOt~6$xiCDf@@WuQc0&pH$d=1bCuJOA}-|4|F)fHkc)5rYxhr@(E zgmPqID1cs2CyXke6e$VxVQ$lHEq)uIn6zD!YRqYxtoyUvT{34fRh<@UO zMYG8R;bqB@6wu5kB6jvMsjs6eZbZ_+-RiCAm&+z z6zyp%l=LmSgcU>XHbl?G_m3&3h9EYRTB{1MIRaPwdykVZ`Y3NQ4M={TRbi<%~Zz;;19t%&pk30MsI2vGzIWZAhF$tHG{cGk38w5FmK z#M9q9I;YLCIm_b}!(E8QdnBP!>vP|KHd?=zll}Q?|7-8Os;Z(}!5iu-$s9Ob%e-$) zqf_vTk4`#wl=j0tEYIFSSJlkM!@R+@q|OH=$J~`D?ld`~-rJT@rb&m+wz?XQvC%6Y@}^u0)rsQ?MDRK;N#%X z&qOaVslA$SZ3q<%06tLqR-@@qQTc+^s1F-;M1ZbnA4YTK5MUpm->EoIOmYJ1Xf8xX z;~zRRVbn9aKYHsdh}--EPIH8e2c5n8>th~9G;Bkz+=zn|1A3-L{62Xk$h4m0T+Ww; zqEL4yIc5a&|4YiL+g>YM7{RP?HZ4x+jGa+Y5!`!ccTO%W01w4f`1SNnm_Ef~0#oV{ z2q=vXG(iy!g*=yq9=^56#Hz=x{KNm5F>n91GG1v50}XD^?q!($D+bFuy>{$#@gBhD zSk##SZ_ilAN2#B8{?s@7vrJ)wYX=xC=s1*3;|+wFT{RN&5xQnvk|${<7THBLrSVwl z*y7^R8r276ajtAGy&vk@bv-)Bx4RCf<_+q!bUyBbPUa#X7|P(Z2i5?pArbgE4O6?i)d?W)$o9fr&}FG3RX;A-qaBXQhy zaGYIcNhR)qx|HE>&vu`UyFZMVgYVqGW-@we2*QdgUa!P?^Zy7qMR{B_GQH?R;cS+H zXAB`o+`L|Guu$s2B+&VWimGV*2u9k{5g`-tcQdcx*Y6-QC|8^j`FtCop~o~759|GF z^&3Jqp;e>ZP!fRE338g|yDnE}Nb}s%iajc8{f17btAdY=w0Z60tA$kcb5RDJhmrGn zr^IhO(XX-aiBU$mawQeaJ7vkBLn{KxhQQy~Pm317L(MsY4p>YgdX~+POfN;QPbH zwkXg@s!gwZMiaHIQ~@LLhWOnf0uTCuVlg3 z_4+S7Y17^padBPGz0hcjL!(-H4k0u-&X*|GhByP;pC3^!@f9*9Tj#Upts)rpk!8O5axBWn;Egxes`PW@P}II6=6sc%_pyutk$DGvrqKBDm)9~I8nb=*N=6J za4@L+-i4<~Cvp$f{~RMk9@*gjXhzL1R1$_zHXWqxM9q06&b2OCNb6X~%pC&&`{I

Z0()3rPsm(f7Ze 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 PvHVX%MOzsKvH0>o525hS literal 0 HcmV?d00001 diff --git a/src/components/Main/Main.css b/src/components/Main/Main.css index 7627586..e22fe45 100644 --- a/src/components/Main/Main.css +++ b/src/components/Main/Main.css @@ -20,9 +20,6 @@ .main { font-family: "GilroyWebRegular"; - display: flex; - flex-direction: row; - gap: 32px; max-width: 1440px; margin: 0 auto; padding: 40px; diff --git a/src/components/Main/Main.js b/src/components/Main/Main.js index 643254b..6f7d213 100644 --- a/src/components/Main/Main.js +++ b/src/components/Main/Main.js @@ -1,11 +1,13 @@ import "./Main.css"; import { CalculatorComponent } from '../CalculatorComponent/CalculatorComponent' +import { DraggableGallery } from "../DraggableGallery/DraggableGallery"; export const Main = ({ }) => { return (

); };