diff --git a/CHANGELOG.md b/CHANGELOG.md index c3710b6269..84525328a4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -39,6 +39,7 @@ - Fullscreen region select on mobile - Change portfolio chart default to year - iOS: live price widget with 24-hour chart +- Receive screen revamp ## v4.50.1 - Fix a bug that would delay showing watch-only accounts. diff --git a/frontends/web/src/components/copy/copy-address-button.module.css b/frontends/web/src/components/copy/copy-address-button.module.css new file mode 100644 index 0000000000..5fe62ea9de --- /dev/null +++ b/frontends/web/src/components/copy/copy-address-button.module.css @@ -0,0 +1,21 @@ +.copyBtn { + display: inline-flex; + justify-content: flex-start; + margin-top: 0; + padding: 0; + text-align: left; + text-decoration: none; +} + +.label { + align-items: center; + display: inline-flex; + font-size: var(--size-default); + gap: var(--space-quarter); + white-space: nowrap; +} + +.icon { + height: 18px; + width: 18px; +} diff --git a/frontends/web/src/components/copy/copy-address-button.tsx b/frontends/web/src/components/copy/copy-address-button.tsx new file mode 100644 index 0000000000..bb805f20af --- /dev/null +++ b/frontends/web/src/components/copy/copy-address-button.tsx @@ -0,0 +1,48 @@ +// SPDX-License-Identifier: Apache-2.0 + +import { useEffect, useState } from 'react'; +import { useTranslation } from 'react-i18next'; +import { Button } from '@/components/forms'; +import { Checked, Copy } from '@/components/icon/icon'; +import style from './copy-address-button.module.css'; + +type TProps = + | { mode: 'copy'; value: string; onClick?: never; className?: string } + | { mode: 'action'; onClick: () => void; value?: never; className?: string }; + +export const CopyAddressButton = (props: TProps) => { + const { mode, className } = props; + const { t } = useTranslation(); + const [copied, setCopied] = useState(false); + + useEffect(() => { + if (!copied) { + return; + } + const id = window.setTimeout(() => setCopied(false), 1500); + return () => window.clearTimeout(id); + }, [copied]); + + const handleClick = () => { + if (mode === 'action') { + props.onClick(); + return; + } + navigator.clipboard.writeText(props.value); + setCopied(true); + }; + + return ( + + ); +}; diff --git a/frontends/web/src/components/icon/assets/icons/arrow-circle-left-active.svg b/frontends/web/src/components/icon/assets/icons/arrow-circle-left-active.svg deleted file mode 100644 index a885959a92..0000000000 --- a/frontends/web/src/components/icon/assets/icons/arrow-circle-left-active.svg +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/frontends/web/src/components/icon/assets/icons/arrow-circle-left.svg b/frontends/web/src/components/icon/assets/icons/arrow-circle-left.svg deleted file mode 100644 index 4e36af094d..0000000000 --- a/frontends/web/src/components/icon/assets/icons/arrow-circle-left.svg +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/frontends/web/src/components/icon/assets/icons/arrow-circle-right-active.svg b/frontends/web/src/components/icon/assets/icons/arrow-circle-right-active.svg deleted file mode 100644 index 575d057029..0000000000 --- a/frontends/web/src/components/icon/assets/icons/arrow-circle-right-active.svg +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/frontends/web/src/components/icon/assets/icons/arrow-circle-right.svg b/frontends/web/src/components/icon/assets/icons/arrow-circle-right.svg deleted file mode 100644 index 6cd941ea47..0000000000 --- a/frontends/web/src/components/icon/assets/icons/arrow-circle-right.svg +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/frontends/web/src/components/icon/assets/icons/chevron-up-blue.svg b/frontends/web/src/components/icon/assets/icons/chevron-up-blue.svg new file mode 100644 index 0000000000..5db0429283 --- /dev/null +++ b/frontends/web/src/components/icon/assets/icons/chevron-up-blue.svg @@ -0,0 +1,3 @@ + diff --git a/frontends/web/src/components/icon/combined.module.css b/frontends/web/src/components/icon/combined.module.css index 11a9552b31..2abda3c13d 100644 --- a/frontends/web/src/components/icon/combined.module.css +++ b/frontends/web/src/components/icon/combined.module.css @@ -5,6 +5,8 @@ .caret { display: block; margin: 0 auto; + position: relative; + right: -8px; } .bitbox02 { @@ -12,4 +14,4 @@ max-width: min(264px, 80%); position: relative; right: -16px; -} +} \ No newline at end of file diff --git a/frontends/web/src/components/icon/combined.tsx b/frontends/web/src/components/icon/combined.tsx index 3360517b79..24f07f13d8 100644 --- a/frontends/web/src/components/icon/combined.tsx +++ b/frontends/web/src/components/icon/combined.tsx @@ -4,10 +4,12 @@ import { useDarkmode } from '@/hooks/darkmode'; import { BitBox02StylizedDark, BitBox02StylizedLight, CaretDown } from './icon'; import style from './combined.module.css'; -export const PointToBitBox02 = () => { +type TProps = { className?: string }; + +export const PointToBitBox02 = ({ className }: TProps) => { const { isDarkMode } = useDarkmode(); return ( -