Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tkey address in settings #1112

Merged
merged 11 commits into from
Jun 11, 2021
73 changes: 60 additions & 13 deletions packages/files-ui/src/Components/Modules/Settings/Profile.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import React, { useState, useCallback } from "react"
import React, { useState } from "react"
import * as yup from "yup"
import {
FormikTextInput,
Expand All @@ -22,6 +22,7 @@ import { centerEllipsis } from "../../../Utils/Helpers"
import { CSFTheme } from "../../../Themes/types"
import clsx from "clsx"
import LanguageSelection from "./LanguageSelection"
import { useThresholdKey } from "../../../Contexts/ThresholdKeyContext"

const useStyles = makeStyles(({ constants, breakpoints, palette, typography }: CSFTheme) =>
createStyles({
Expand Down Expand Up @@ -137,6 +138,7 @@ const ProfileView = () => {
const { themeKey, setTheme } = useThemeSwitcher()
const { addToastMessage } = useToaster()
const { profile, updateProfile } = useUser()
const { publicKey } = useThresholdKey()
const [updatingProfile, setUpdatingProfile] = useState(false)

const onUpdateProfile = async (firstName: string, lastName: string) => {
Expand All @@ -153,21 +155,33 @@ const ProfileView = () => {

const classes = useStyles()

const [copied, setCopied] = useState(false)
const [copiedWalletAddress, setCopiedWalletAddress] = useState(false)
const [copiedTkeyAddress, setCopiedTkeyAddress] = useState(false)
tanmoyAtb marked this conversation as resolved.
Show resolved Hide resolved

// TODO useCallback is maybe not needed here
// eslint-disable-next-line react-hooks/exhaustive-deps
const debouncedSwitchCopied = useCallback(
debounce(() => setCopied(false), 3000),
[]
)
const debouncedCopiedWalletAddress =
debounce(() => setCopiedWalletAddress(false), 3000)

const debouncedCopiedTkeyAddress =
debounce(() => setCopiedTkeyAddress(false), 3000)

const copyAddress = async () => {
const copyWalletAddress = async () => {
if (profile?.publicAddress) {
try {
await navigator.clipboard.writeText(profile.publicAddress)
setCopied(true)
debouncedSwitchCopied()
setCopiedWalletAddress(true)
debouncedCopiedWalletAddress()
} catch (err) {
console.error(err)
}
}
}

const copyTkeyAddress = async () => {
tanmoyAtb marked this conversation as resolved.
Show resolved Hide resolved
if (publicKey) {
try {
await navigator.clipboard.writeText(publicKey)
setCopiedTkeyAddress(true)
debouncedCopiedTkeyAddress()
} catch (err) {
console.error(err)
}
Expand Down Expand Up @@ -221,15 +235,15 @@ const ProfileView = () => {
>
<Trans>Wallet address</Trans>
</Typography>
{copied && (
{copiedWalletAddress && (
<Typography>
<Trans>Copied!</Trans>
</Typography>
)}
</div>
<div
className={classes.copyBox}
onClick={copyAddress}
onClick={copyWalletAddress}
>
<Typography
variant="body1"
Expand All @@ -242,6 +256,39 @@ const ProfileView = () => {
</div>
</div>
) : null}
{publicKey ? (
<div
className={classes.boxContainer}
data-cy="settings-profile-header"
>
<div className={classes.walletAddressContainer}>
<Typography
variant="body1"
className={classes.label}
>
<Trans>Files address</Trans>
tanmoyAtb marked this conversation as resolved.
Show resolved Hide resolved
</Typography>
{copiedTkeyAddress && (
<Typography>
<Trans>Copied!</Trans>
</Typography>
)}
</div>
<div
className={classes.copyBox}
onClick={copyTkeyAddress}
tanmoyAtb marked this conversation as resolved.
Show resolved Hide resolved
>
<Typography
variant="body1"
component="p"
className={classes.publicAddress}
>
{centerEllipsis(publicKey, 16)}
</Typography>
<CopyIcon className={classes.copyIcon} />
</div>
</div>
) : null}
<div className={classes.boxContainer}>
<FormikTextInput
placeholder={t`First name`}
Expand Down
3 changes: 3 additions & 0 deletions packages/files-ui/src/locales/en/messages.po
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,9 @@ msgstr "File size"
msgid "Files"
msgstr "Files"

msgid "Files address"
msgstr "Files address"

msgid "Files uses device backups to save your browser."
msgstr "Files uses device backups to save your browser."

Expand Down
3 changes: 3 additions & 0 deletions packages/files-ui/src/locales/fr/messages.po
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,9 @@ msgstr "Taille"
msgid "Files"
msgstr "Fichiers"

msgid "Files address"
msgstr ""

msgid "Files uses device backups to save your browser."
msgstr "Files enregistre ce navigateur."

Expand Down