diff --git a/package-lock.json b/package-lock.json index cdffae4..7e25b8f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38,6 +38,7 @@ "start-server-and-test": "^2.0.0", "styled-components": "^5.3.6", "typescript": "^4.9.5", + "use-resize-observer": "^9.1.0", "web-vitals": "^2.1.4", "zustand": "^4.3.8" } @@ -3254,6 +3255,11 @@ "@jridgewell/sourcemap-codec": "1.4.14" } }, + "node_modules/@juggle/resize-observer": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", + "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==" + }, "node_modules/@leichtgewicht/ip-codec": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", @@ -17968,6 +17974,18 @@ "requires-port": "^1.0.0" } }, + "node_modules/use-resize-observer": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/use-resize-observer/-/use-resize-observer-9.1.0.tgz", + "integrity": "sha512-R25VqO9Wb3asSD4eqtcxk8sJalvIOYBqS8MNZlpDSQ4l4xMQxC/J7Id9HoTqPq8FwULIn0PVW+OAqF2dyYbjow==", + "dependencies": { + "@juggle/resize-observer": "^3.3.1" + }, + "peerDependencies": { + "react": "16.8.0 - 18", + "react-dom": "16.8.0 - 18" + } + }, "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", @@ -21283,6 +21301,11 @@ "@jridgewell/sourcemap-codec": "1.4.14" } }, + "@juggle/resize-observer": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", + "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==" + }, "@leichtgewicht/ip-codec": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", @@ -31760,6 +31783,14 @@ "requires-port": "^1.0.0" } }, + "use-resize-observer": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/use-resize-observer/-/use-resize-observer-9.1.0.tgz", + "integrity": "sha512-R25VqO9Wb3asSD4eqtcxk8sJalvIOYBqS8MNZlpDSQ4l4xMQxC/J7Id9HoTqPq8FwULIn0PVW+OAqF2dyYbjow==", + "requires": { + "@juggle/resize-observer": "^3.3.1" + } + }, "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 c0c44c6..d972390 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "start-server-and-test": "^2.0.0", "styled-components": "^5.3.6", "typescript": "^4.9.5", + "use-resize-observer": "^9.1.0", "web-vitals": "^2.1.4", "zustand": "^4.3.8" }, diff --git a/src/kit/section.tsx b/src/kit/section.tsx index 7b526c7..3916bdf 100644 --- a/src/kit/section.tsx +++ b/src/kit/section.tsx @@ -2,6 +2,8 @@ import * as React from "react"; import Box from "@mui/material/Box"; import { SxProps, Theme, useMediaQuery } from "@mui/material"; import { useTheme } from "@mui/material/styles"; +// import {createRef, useEffect} from "react"; +// import useResizeObserver from "use-resize-observer"; interface Props { sxsect?: SxProps; @@ -11,14 +13,19 @@ interface Props { bg: string; children: React.ReactNode; sxcont?: SxProps; + ref?: any } + export default function Section(props: Props) { const theme = useTheme(); const isTablet = useMediaQuery(theme.breakpoints.down(1000)); + const isMinTablet = useMediaQuery(theme.breakpoints.down(886)); + const isRubberSmall = useMediaQuery(theme.breakpoints.down(500)); return ( @@ -46,4 +53,4 @@ export default function Section(props: Props) { ); -} +} \ No newline at end of file diff --git a/src/pages/MobileApps/Section1/Section1.tsx b/src/pages/MobileApps/Section1/Section1.tsx index e75f077..34e052b 100644 --- a/src/pages/MobileApps/Section1/Section1.tsx +++ b/src/pages/MobileApps/Section1/Section1.tsx @@ -1,4 +1,4 @@ -import { useState } from "react"; +import { createRef, useEffect} from "react"; import { Box, Typography, Button, useMediaQuery } from "@mui/material"; import { useTheme } from "@mui/material/styles"; @@ -7,6 +7,7 @@ import Section from "../../../kit/section"; import phoneImage from "../../../image/img_mobile/phone1.png"; import phoneMobil from "../../../image/img_mobile/img_phone_bubbles_1.png"; import { setIsContactFormOpen } from "../../../stores/contactForm"; +import useResizeObserver from "use-resize-observer"; export default function Section1() { const theme = useTheme(); @@ -15,8 +16,13 @@ export default function Section1() { const isMinTablet = useMediaQuery(theme.breakpoints.down(886)); const isRubberSmall = useMediaQuery(theme.breakpoints.down(500)); - return ( + const { ref, width, height } = useResizeObserver(); + console.log(height) + + + return (
- + {/*тут пример того как это работает, у этого бокса высота 84, если подставить её, то фон становится черным, */} + {/*если использовать <== всё сломается*/} +