ghost-portal/packages/react-components/src/Card.tsx
Thibaut Sardan 0091fc6e57
Add attestation to claims (#2734)
* init

* Attest component

* Add top notification bar

* better english

* back to 3 steps

* clean up

* in the middle of the refactoring

* Make TS pass

* Clea up some comments

* isPreclaimed

* isOldClaimProcess

* Attest vs Claim (#2737)

* Choose between Claim and Attest

* fix lint

* fix flow between claim and attest (#2738)

* Jaco's comments + Fetch StatementKind (#2741)

* Fix small bug in flow

* Add condition for the warning banner (#2742)

* prevent crash for older chains

* with useEffect

* should work

* back to something simple

* remove hoc

* fix CI

* Add ETH address field for non preclaimed addresses (#2746)

* Eth field

* fix

* remove stray logs

* Update packages/page-claims/src/index.tsx

Co-authored-by: Jaco Greeff <jacogr@gmail.com>

* Update packages/page-claims/src/index.tsx

Co-authored-by: Jaco Greeff <jacogr@gmail.com>

* Update packages/apps/src/overlays/Attest.tsx

Co-authored-by: Jaco Greeff <jacogr@gmail.com>

* Show the amount of token that will be claimed (#2747)

* show amount in attest

* fix isApiReady

* fix lint

* Use counter instead of overlay (#2750)

* Use counter instead of overlay

* Add warning to claim (#2752)

* add warning

* css cleanup

* fix unused const

Co-authored-by: Thibaut Sardan <33178835+Tbaut@users.noreply.github.com>

* Update packages/page-claims/src/Warning.tsx

Co-authored-by: Jaco Greeff <jacogr@gmail.com>

* Update packages/page-claims/src/index.tsx

Co-authored-by: Jaco Greeff <jacogr@gmail.com>

* Update packages/page-claims/src/index.tsx

Co-authored-by: Jaco Greeff <jacogr@gmail.com>

* Update packages/page-claims/src/index.tsx

Co-authored-by: Jaco Greeff <jacogr@gmail.com>

* Update packages/page-claims/src/index.tsx

Co-authored-by: Jaco Greeff <jacogr@gmail.com>

* address comment shortcut

* set Ethereum address outside transfor and fix typos

* lint

* extract claims.preclaims to a hook

* address comments EthereumAddress type and avoid casting

* Missing isUnsigned

* use AddressMini in warning

* use a proper step for eth address field

* Add loading state

* remove log

* unwrapOrNull

* Update packages/page-claims/src/Warning.tsx

Co-authored-by: Jaco Greeff <jacogr@gmail.com>

* fix for account plural translation

* lint

* Add getStatement function

* nits

* Fix lint

* Update packages/page-claims/src/Warning.tsx

Co-authored-by: Jaco Greeff <jacogr@gmail.com>

* add statement

* statement component

* address comment unWrapOr

* test styling with long md

* add md to jest

* Update packages/page-claims/src/Statement.tsx

Co-authored-by: Amaury Martiny <amaury.martiny@protonmail.com>

* copy text before

* lint

* Remove EthreumAddress type to avoid unexpected behaviors (#2796)

* remove EthreumAddress type

* createType when needed

* revert

* typo

* Enhance UX for claim process (#2797)

* update content

* init

* comment

* Add HTML components for statements (#2798)

* Add HTML components for statements

* Update packages/page-claims/src/statements/saft.tsx

* Update to final statements

* More nits

* Nits

* OnSuccess

* prevent display of empty statement when attested

* Small fixmes

* Update packages/page-claims/src/index.tsx

* fix isError not being red as expected

* remove word-break

* statement text in black

* attestation for -> accounc balance

* Update packages/page-claims/src/Statement.tsx

Co-authored-by: Logan Saether <x@logansaether.com>

* margin left instead of space

* I agree

* Use iframe

* update saft to QmXEkMahfhHJPzT3RjkXiZVFi77ZeVeuxtAjhojGRNYckz

* remove hash and duplications (#2814)

Co-authored-by: Amaury Martiny <amaury.martiny@protonmail.com>
Co-authored-by: Jaco Greeff <jacogr@gmail.com>
Co-authored-by: Logan Saether <x@logansaether.com>
2020-05-26 11:49:12 +02:00

86 lines
1.7 KiB
TypeScript

// Copyright 2017-2020 @polkadot/react-components authors & contributors
// This software may be modified and distributed under the terms
// of the Apache-2.0 license. See the LICENSE file for details.
import React from 'react';
import styled from 'styled-components';
interface Props {
children: React.ReactNode;
className?: string;
isError?: boolean;
isSuccess?: boolean;
withBottomMargin?: boolean;
}
function Card ({ children, className = '', isError, isSuccess, withBottomMargin }: Props): React.ReactElement<Props> {
return (
<article className={`ui--Card ${className} ${(isError && !isSuccess) ? 'error' : ''} ${(!isError && isSuccess) ? 'success' : ''} ${withBottomMargin ? 'withBottomMargin' : ''}`}>
{children}
</article>
);
}
export default React.memo(styled(Card)`
position: relative;
flex: 1 1;
min-width: 24%;
justify-content: space-around;
label {
opacity: 0.42;
}
&:hover {
label {
opacity: 1;
}
}
&.error {
background: rgba(255, 0, 0, 0.05);
&, h1, h2, h3, h4, h5, h6, p {
color: rgba(156, 0, 0) !important;
}
}
&.success {
border: 1px solid rgb(168, 255, 136);
background: rgba(0, 255, 0, 0.05);
&, h1, h2, h3, h4, h5, h6, p {
color: rgba(34, 125, 0) !important;
}
}
&.withBottomMargin {
margin-bottom: 1.5rem;
}
i.help.circle.icon,
.ui.button.mini,
.ui.button.tiny,
.addTags {
visibility: hidden;
}
&:hover {
i.help.circle.icon,
.ui.button.mini,
.ui.button.tiny,
.addTags {
visibility: visible;
}
}
.ui--AddressSummary-buttons {
text-align: right;
margin-bottom: 2em;
button {
margin-left: 0.2em;
}
}
`);