Skip to content

Commit 4d6298e

Browse files
authored
Merge pull request #10997 from TylerAPfledderer/refactor/FeedbackWidget
refactor(FeedbackWidget): Improve structure with Chakra UI
2 parents de0b554 + 4b6d221 commit 4d6298e

File tree

6 files changed

+319
-277
lines changed

6 files changed

+319
-277
lines changed

src/components/FeedbackWidget.tsx

Lines changed: 0 additions & 276 deletions
This file was deleted.
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import * as React from "react"
2+
import { Box, Stack } from "@chakra-ui/react"
3+
import { Meta, StoryObj } from "@storybook/react"
4+
5+
import FeedbackWidgetComponent from "./"
6+
7+
type FeedbackWidgetType = typeof FeedbackWidgetComponent
8+
9+
const meta = {
10+
title: "FeedbackWidget",
11+
parameters: {
12+
layout: "fullscreen",
13+
},
14+
decorators: [
15+
(Story) => (
16+
<Stack minH="100vh" position="relative">
17+
<Box flex="1" />
18+
<Story />
19+
</Stack>
20+
),
21+
],
22+
} satisfies Meta<FeedbackWidgetType>
23+
24+
export default meta
25+
26+
export const FeedbackWidget: StoryObj<FeedbackWidgetType> = {
27+
render: () => <FeedbackWidgetComponent />,
28+
}
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
import { useTranslation } from "next-i18next"
2+
import { Button, ButtonProps, ScaleFade, Text } from "@chakra-ui/react"
3+
4+
import { FeedbackGlyphIcon } from "../icons"
5+
6+
type FixedDotProps = ButtonProps & {
7+
bottomOffset: number
8+
isExpanded: boolean
9+
}
10+
const FixedDot = ({ bottomOffset, isExpanded, ...props }: FixedDotProps) => {
11+
const { t } = useTranslation("common")
12+
const size = "12"
13+
return (
14+
<Button
15+
h={size}
16+
w={{ base: size, lg: isExpanded ? "15rem" : size }}
17+
borderRadius="full"
18+
boxShadow="tableItemBox"
19+
position="sticky"
20+
bottom={{ base: `${bottomOffset + 1}rem`, lg: 4 }}
21+
color="white"
22+
ms="auto"
23+
me="4"
24+
mt={{ lg: "inherit" }}
25+
zIndex={98} /* Below the mobile menu */
26+
display="flex"
27+
alignItems="center"
28+
_hover={{
29+
transform: "scale(1.1)",
30+
transition: "transform 0.2s ease-in-out",
31+
}}
32+
transition="transform 0.2s ease-in-out, width 0.25s ease-in-out,
33+
border-radius 0.25s linear"
34+
aria-label={t("feedback-widget")}
35+
leftIcon={<FeedbackGlyphIcon color="white" />}
36+
iconSpacing={{ base: 0, lg: "3" }}
37+
sx={{
38+
".chakra-button__icon": {
39+
me: !isExpanded ? 0 : undefined,
40+
},
41+
}}
42+
{...props}
43+
>
44+
<ScaleFade in={isExpanded} delay={0.25}>
45+
<Text
46+
as="span"
47+
fontWeight="bold"
48+
noOfLines={2}
49+
height="100%"
50+
alignItems="center"
51+
display={{ base: "none", lg: isExpanded ? "flex" : "none" }}
52+
>
53+
{t("feedback-widget-prompt")}
54+
</Text>
55+
</ScaleFade>
56+
</Button>
57+
)
58+
}
59+
60+
export default FixedDot

0 commit comments

Comments
 (0)