From 50a919011ad20a99ec2bccb44c19098eec19babf Mon Sep 17 00:00:00 2001 From: Nikolaj Frey Date: Tue, 27 Jun 2023 11:18:08 +1000 Subject: [PATCH] feat: main Updated index page animation --- remix/app/components/rainbowText.tsx | 25 ++++++++ remix/app/components/textAnimation1.tsx | 36 +++++++++++ remix/app/routes/index.tsx | 81 ++---------------------- remix/public/favicon.ico | Bin 16958 -> 15406 bytes 4 files changed, 66 insertions(+), 76 deletions(-) create mode 100644 remix/app/components/rainbowText.tsx create mode 100644 remix/app/components/textAnimation1.tsx diff --git a/remix/app/components/rainbowText.tsx b/remix/app/components/rainbowText.tsx new file mode 100644 index 0000000..62b7247 --- /dev/null +++ b/remix/app/components/rainbowText.tsx @@ -0,0 +1,25 @@ +import { Text } from '@chakra-ui/react' +import React from 'react' + +export const RainbowText = props => { + return ( + + {props?.children} + + ) +} diff --git a/remix/app/components/textAnimation1.tsx b/remix/app/components/textAnimation1.tsx new file mode 100644 index 0000000..031400d --- /dev/null +++ b/remix/app/components/textAnimation1.tsx @@ -0,0 +1,36 @@ +import { RainbowText } from './rainbowText' +import React from 'react' + +export const TextAnimation1 = props => { + const texts = React.useMemo(() => { + return [ + // 't', + 'tt', + 'thingtime' + // 'tt / thingtime' + // 'tht', + // 'thit', + // 'thint', + // 'thingt', + // 'thingti', + // 'thingtim', + // 'thingtime', + // 'Thingtime', + // 'ThingTime', + // 'Thing Time' + ] + }, []) + + const [titleText, setTitleText] = React.useState(texts[0]) + + React.useEffect(() => { + const interval = setInterval(() => { + const newTextIdx = texts?.indexOf(titleText) + 1 + const newText = texts[newTextIdx] || texts[0] + setTitleText(newText) + }, 5000) + return () => clearInterval(interval) + }, [titleText, texts]) + + return {titleText} +} diff --git a/remix/app/routes/index.tsx b/remix/app/routes/index.tsx index ea1ffc2..98de553 100644 --- a/remix/app/routes/index.tsx +++ b/remix/app/routes/index.tsx @@ -1,80 +1,9 @@ -import { Box, Flex, Text } from '@chakra-ui/react' -import React from 'react' - +import { Flex } from '@chakra-ui/react' +import { TextAnimation1 } from '~/components/textAnimation1' export default function Index () { - const texts = [ - // 't', - 'tt', - '/', - 'thingtime' - // 'tht', - // 'thit', - // 'thint', - // 'thingt', - // 'thingti', - // 'thingtim', - // 'thingtime', - // 'Thingtime', - // 'ThingTime', - // 'Thing Time' - ] - - const [titleText, setTitleText] = React.useState(texts[0]) - - const [started, setStarted] = React.useState(false) - - // const mainText = 'Thing Time' - // const mainText = "Thingtime" - const mainText = 'thingtime' - - React.useEffect(() => { - const interval = setInterval(() => { - const newTextIdx = texts?.indexOf(titleText) + 1 - const newText = texts[newTextIdx] || texts[0] - setTitleText(newText) - // if (titleText === 'tt') { - // setTitleText('tt.') - // } else if (titleText === 'tt.') { - // setTitleText('tt..') - // } else if (titleText === 'tt..') { - // setTitleText('tt...') - // } else if (titleText === 'tt...') { - // setTitleText(mainText) - // } else if (titleText === mainText) { - // if (!started) { - // setStarted(true) - // setTimeout(() => { - // setTitleText('tt') - // setStarted(false) - // }, 15000) - // } - // } - }, 2000) - return () => clearInterval(interval) - }, [titleText, started]) - return ( - <> - - - {titleText} - - - + + + ) } diff --git a/remix/public/favicon.ico b/remix/public/favicon.ico index 8830cf6821b354114848e6354889b8ecf6d2bc61..6a7e9670a1640ab127bfcf8e05133d5b1b787662 100644 GIT binary patch literal 15406 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 literal 16958 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 EKbET!0{{R3