ghost-portal/packages/react-params/src/Holder.tsx
Robert Gabriel Jakabosky 7e58122a7f
Support BTreeMap and fix rpc optional (#9911)
* Fix issue with optional rpc parameters.

* Remove HACK.

* Add BTreeMap support.

* small fix.

* Fix lint errors.

* Fix ts compile error.

* More lint fixes.

* Update packages/react-params/src/Param/BTreeMap.tsx

Co-authored-by: Tarik Gul <47201679+TarikGul@users.noreply.github.com>

* Update header.

---------

Co-authored-by: Tarik Gul <47201679+TarikGul@users.noreply.github.com>
2024-06-12 10:16:08 -04:00

117 lines
2.1 KiB
TypeScript

// Copyright 2017-2024 @polkadot/react-params authors & contributors
// SPDX-License-Identifier: Apache-2.0
import React from 'react';
import { styled } from '@polkadot/react-components';
interface Props {
children?: React.ReactNode;
className?: string;
withBorder?: boolean;
withExpander?: boolean;
withPadding?: boolean;
}
function Holder ({ children, className = '', withBorder, withExpander, withPadding }: Props): React.ReactElement<Props> {
return (
<StyledDiv className={`${className} ui--Params ${withBorder ? 'withBorder' : ''} ${withPadding ? 'withPadding' : ''} ${withExpander ? 'withExpander' : ''}`}>
{children}
</StyledDiv>
);
}
const StyledDiv = styled.div`
&.withBorder {
padding-left: 2rem;
.ui--Params-Content {
border-left: 1px dashed var(--border-input);
.ui--Params.withBorder {
padding-left: 0;
}
}
}
&.withExpander {
padding-left: 0.25rem;
}
&.withPadding {
padding-left: 4rem;
}
.ui--Param-composite .ui--row,
.ui--Param-composite .ui--row .ui--InputAddressSimple {
& > .ui--Labelled > label {
text-transform: none !important;
}
}
.ui--row {
flex-wrap: wrap;
}
.ui--Param-Address {
}
.ui--Params-Content {
box-sizing: border-box;
padding: 0;
.ui--Params-Content {
margin-left: 2rem;
}
}
.ui--Param-text {
display: inline-block;
font-size: var(--font-size-base);
line-height: 1.714rem;
overflow: hidden;
text-overflow: ellipsis;
}
.ui--Param-text .icon {
margin-right: 0.5rem !important;
}
.ui--Param-text * {
vertical-align: middle;
}
.ui--Param-text.nowrap {
white-space: nowrap;
}
.ui--Param-text.name {
color: rgba(0, 0, 0, .6);
font-style: italic;
}
.ui--Param-text + .ui--Param-text {
margin-left: 0.5rem;
}
.ui--Param-Vector-buttons {
text-align: right;
}
.ui--Param-BTreeMap-buttons {
text-align: right;
}
.ui--Param-composite {
position: relative;
.ui--Param-overlay {
position: absolute;
top: 0.5rem;
right: 3.5rem;
}
}
`;
export default React.memo(Holder);