diff --git a/apps/web/public/images/home/hero.png b/apps/web/public/images/home/hero.png new file mode 100644 index 00000000..1ae80c71 Binary files /dev/null and b/apps/web/public/images/home/hero.png differ diff --git a/apps/web/src/modules/home/Banner/SvgGroup.tsx b/apps/web/src/modules/home/Banner/SvgGroup.tsx deleted file mode 100644 index e9df8409..00000000 --- a/apps/web/src/modules/home/Banner/SvgGroup.tsx +++ /dev/null @@ -1,238 +0,0 @@ -import React, { useEffect, useMemo, useRef } from 'react'; -import { gsap } from 'gsap'; -import { useDebounceFn } from 'ahooks'; - -import Svg1 from './assets/01.svg'; -import Svg2 from './assets/02.svg'; -import Svg3 from './assets/03.svg'; -import Svg4 from './assets/04.svg'; -import Svg5 from './assets/05.svg'; -// import Svg6 from './assets/06.svg'; -import Svg6 from './assets/07.svg'; -// import Svg8 from './assets/08.svg'; - -export const SvgPositionConfig = [ - { - id: 1, - top: 38, - right: 213, - width: 143, - height: 129, - el: , - animate: true, - }, - { - id: 2, - top: 89, - right: 311, - width: 277, - height: 250, - el: , - animate: true, - }, - { - id: 3, - top: 107, - right: 1, - width: 226, - height: 232, - el: , - animate: true, - }, - { - id: 4, - top: 383, - right: 11, - width: 143, - height: 129, - el: , - animate: true, - }, - // { - // id: 5, - // top: 230, - // right: 417, - // width: 139, - // height: 143, - // el: , - // animate: true, - // }, - { - id: 5, - top: 331, - right: 241, - width: 307, - height: 233, - el: , - animate: true, - }, - // { - // id: 7, - // top: 615, - // right: 47, - // width: 139, - // height: 143, - // el: , - // animate: true, - // }, - { - id: 6, - top: 295, - right: 200, - width: 139, - height: 143, - el: , - animate: false, - }, -]; - -export const SvgPositionMobileConfig = [ - { - id: 1, - top: 10, - right: 360, - width: 78, - height: 70, - el: , - animate: true, - }, - { - id: 2, - top: 10, - right: 211, - width: 151, - height: 136, - el: , - animate: true, - }, - { - id: 3, - top: 10, - right: 50, - width: 122, - height: 126, - el: , - animate: true, - }, - { - id: 4, - top: 150, - right: 20, - width: 100, - height: 100, - el: , - animate: true, - }, - // { - // id: 5, - // top: 230, - // right: 417, - // width: 139, - // height: 143, - // el: , - // animate: true, - // }, - { - id: 5, - bottom: 20, - right: 50, - width: 167, - height: 126, - el: , - animate: true, - }, - // { - // id: 7, - // top: 205, - // right: 47, - // width: 139, - // height: 143, - // el: , - // animate: true, - // }, - { - id: 6, - top: 200, - right: 140, - width: 139, - height: 143, - el: , - animate: false, - }, -]; - -const anim = (id: string) => { - const list = [ - { - target: `#${id} svg path:nth-child(2)`, - vars: { duration: 0.5, x: -10, y: 5 }, - }, - { - target: `#${id} svg path:nth-child(3)`, - vars: { duration: 0.5, x: -20, y: 10 }, - }, - { - target: `#${id} svg path:nth-child(4)`, - vars: { duration: 0.5, x: -30, y: 15 }, - }, - { - target: `#${id} svg path:nth-child(5)`, - vars: { duration: 0.5, x: -40, y: 20 }, - }, - ]; - list.forEach((item) => { - gsap.to(item.target, item.vars); - }); -}; - -export const SvgBlock: React.FC<{ - id: number; - left?: number; - right?: number; - top?: number; - bottom?: number; - width: number; - height: number; - el: React.ReactElement; - animate: boolean; -}> = ({ id, top, bottom, left, right, width, height, el, animate }) => { - const ref = useRef(false); - - useEffect(() => { - if (ref.current) return; - ref.current = true; - }, []); - - const { run, cancel } = useDebounceFn( - (id) => { - anim(id); - }, - { wait: 1000, leading: true, trailing: false } - ); - - const styles = useMemo(() => { - const styles: React.CSSProperties = {}; - if (top) styles.top = `${top}px`; - if (bottom) styles.bottom = `${bottom}px`; - if (left) styles.left = `${left}px`; - if (right) styles.right = `${right}px`; - return styles; - }, [top, right, left, bottom]); - - return ( -
-
{ - if (animate) { - cancel(); - run(`svg${id}`); - } - }} - > - {el} -
-
- ); -}; diff --git a/apps/web/src/modules/home/Banner/assets/01.svg b/apps/web/src/modules/home/Banner/assets/01.svg deleted file mode 100644 index ef15231a..00000000 --- a/apps/web/src/modules/home/Banner/assets/01.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/apps/web/src/modules/home/Banner/assets/02.svg b/apps/web/src/modules/home/Banner/assets/02.svg deleted file mode 100644 index 42e0ebfe..00000000 --- a/apps/web/src/modules/home/Banner/assets/02.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/web/src/modules/home/Banner/assets/03.svg b/apps/web/src/modules/home/Banner/assets/03.svg deleted file mode 100644 index 9f0e18b6..00000000 --- a/apps/web/src/modules/home/Banner/assets/03.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/web/src/modules/home/Banner/assets/04.svg b/apps/web/src/modules/home/Banner/assets/04.svg deleted file mode 100644 index d95d745b..00000000 --- a/apps/web/src/modules/home/Banner/assets/04.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/apps/web/src/modules/home/Banner/assets/05.svg b/apps/web/src/modules/home/Banner/assets/05.svg deleted file mode 100644 index 5a57fae2..00000000 --- a/apps/web/src/modules/home/Banner/assets/05.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/apps/web/src/modules/home/Banner/assets/06.svg b/apps/web/src/modules/home/Banner/assets/06.svg deleted file mode 100644 index b542d204..00000000 --- a/apps/web/src/modules/home/Banner/assets/06.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/apps/web/src/modules/home/Banner/assets/07.svg b/apps/web/src/modules/home/Banner/assets/07.svg deleted file mode 100644 index 2f96591e..00000000 --- a/apps/web/src/modules/home/Banner/assets/07.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - 01 - - - - - - \ No newline at end of file diff --git a/apps/web/src/modules/home/Banner/assets/08.svg b/apps/web/src/modules/home/Banner/assets/08.svg deleted file mode 100644 index a7dcf62a..00000000 --- a/apps/web/src/modules/home/Banner/assets/08.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - 02 - - - - - - - - - - - diff --git a/apps/web/src/modules/home/Banner/assets/hero.png b/apps/web/src/modules/home/Banner/assets/hero.png new file mode 100644 index 00000000..1ae80c71 Binary files /dev/null and b/apps/web/src/modules/home/Banner/assets/hero.png differ diff --git a/apps/web/src/modules/home/Banner/index.tsx b/apps/web/src/modules/home/Banner/index.tsx index 6328fb9d..f4a594e1 100644 --- a/apps/web/src/modules/home/Banner/index.tsx +++ b/apps/web/src/modules/home/Banner/index.tsx @@ -1,40 +1,28 @@ import React, { memo, useMemo } from 'react'; import { Center } from '@common/components/Layout'; -import useBreakpoint from '@common/hooks/useBreakpoint'; -import NoSsr from '@common/components/NoSsr'; -import { - SvgBlock, - SvgPositionConfig, - SvgPositionMobileConfig, -} from './SvgGroup'; import Search from './Search'; import styles from './index.module.scss'; +import NoSsr from '@common/components/NoSsr'; +import Image from 'next/image'; -const SvgGroup: React.FC<{ breakpoint: string }> = memo(({ breakpoint }) => { - const svgConfig = useMemo(() => { - if (breakpoint === 'sm') return SvgPositionMobileConfig; - return SvgPositionConfig; - }, [breakpoint]); - +const Carousel = () => { return ( - <> - {svgConfig.map((item) => { - return ; - })} - +
+ {''} +
); -}); -SvgGroup.displayName = 'SvgGroup'; - +}; const SectionBanner = () => { - const breakpoint = useBreakpoint(); - return (
- - - +