Move app-rpc into app-toolbox (#637)
* Staking condensed * Move app-rpc into app-toolbox * Adjust children rendering (summary) * Polkadot highlights * Display most-recent as expanded (explorer)
This commit is contained in:
parent
932f63bd3a
commit
bbb9bb0fee
@ -23,12 +23,11 @@ The repo is split into a number of packages, each representing an application. T
|
||||
- [app-democracy](packages/app-democracy/) A basic voting app, allowing votes on activate proposals and referendums.
|
||||
- [app-explorer](packages/app-explorer/) A simple block explorer. It only shows the most recent blocks, updating as they become available.
|
||||
- [app-extrinsics](packages/app-extrinsics/) Submission of extrinsics to a node.
|
||||
- [app-rpc](packages/app-rpc/) Sumission of raw data to RPC endpoints.
|
||||
- [app-settings](packages/app-settings/) A basic settings management app, allowing choice of language, node to connect to, and theme
|
||||
- [app-staking](packages/app-staking/) A basic staking management app, allowing staking and nominations.
|
||||
- [app-nodeinfo](packages/app-nodeinfo/) Node information and status
|
||||
- [app-storage](packages/app-storage/) A simple node storage query application. Multiple queries can be queued and updates as new values become available.
|
||||
- [app-toolbox](packages/app-toolbox/) Utilities to manage data.
|
||||
- [app-toolbox](packages/app-toolbox/) Sumission of raw data to RPC endpoints and utility hashing functions.
|
||||
- [app-transfer](packages/app-transfer/) A basic account management app, allowing transfer of DOTs between accounts.
|
||||
|
||||
In addition the following libraries are also included in the repo. These are to be moved to the [@polkadot/ui](https://github.com/polkadot-js/ui/) repository once it reaches a base level of stability and usability. (At this point with the framework being tested on the apps above, it makes development easier having it close)
|
||||
|
||||
@ -55,12 +55,12 @@ class Extrinsics extends React.PureComponent<Props> {
|
||||
className='explorer--BlockByHash-block'
|
||||
key={`extrinsic:${index}`}
|
||||
>
|
||||
<article className='explorer--Container'>
|
||||
<article className='ui--hoverable explorer--Container'>
|
||||
<div className='header'>
|
||||
<h3>
|
||||
#{numberFormat(index)}: {section}.{method}
|
||||
</h3>
|
||||
<div className='description hover'>{
|
||||
<div className='ui--hover description'>{
|
||||
meta && meta.documentation && meta.documentation.length
|
||||
? meta.documentation.map((doc) => doc.toString()).join(' ')
|
||||
: ''
|
||||
@ -68,7 +68,7 @@ class Extrinsics extends React.PureComponent<Props> {
|
||||
{this.renderSigner(extrinsic)}
|
||||
</div>
|
||||
<Call
|
||||
className='details hover'
|
||||
className='ui--hover details'
|
||||
value={extrinsic}
|
||||
/>
|
||||
</article>
|
||||
|
||||
@ -48,7 +48,7 @@ class Logs extends React.PureComponent<Props> {
|
||||
|
||||
return (
|
||||
<div
|
||||
className='explorer--BlockByHash-block'
|
||||
className='ui--hoverable explorer--BlockByHash-block'
|
||||
key={index}
|
||||
>
|
||||
<article className='explorer--Container'>
|
||||
@ -56,9 +56,9 @@ class Logs extends React.PureComponent<Props> {
|
||||
<h3>
|
||||
{item.type.toString()}
|
||||
</h3>
|
||||
<div className='description' />
|
||||
<div className='ui--hover description' />
|
||||
</div>
|
||||
<div className='details hover'>
|
||||
<div className='ui--hover details'>
|
||||
{content}
|
||||
</div>
|
||||
</article>
|
||||
|
||||
@ -15,26 +15,23 @@
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
&.ui--hoverable {
|
||||
.details > .contains {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
.details > .contains {
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.summary {
|
||||
.header .hash {
|
||||
/* 0.5 * 0.5 */
|
||||
opacity: 0.5625;
|
||||
}
|
||||
|
||||
.hover {
|
||||
height: 0;
|
||||
transition: none;
|
||||
transform: scale(0);
|
||||
}
|
||||
|
||||
&:hover {
|
||||
.hover {
|
||||
height: auto;
|
||||
margin-top: 0.5rem;
|
||||
transform: scale(1);
|
||||
transition: all 200ms ease-in;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.author {
|
||||
@ -93,6 +90,7 @@
|
||||
|
||||
> .contains {
|
||||
border: 0;
|
||||
margin-top: 0.5rem;
|
||||
opacity: 0.75;
|
||||
|
||||
> .info {
|
||||
|
||||
@ -35,7 +35,7 @@ export default class BlockHeader extends React.PureComponent<Props> {
|
||||
const textNumber = numberFormat(blockNumber);
|
||||
|
||||
return (
|
||||
<article className={['explorer--BlockHeader', isSummary ? 'summary' : ''].join(' ')}>
|
||||
<article className={['explorer--BlockHeader', isSummary ? 'ui--hoverable summary' : ''].join(' ')}>
|
||||
<div className='details'>
|
||||
<div className='header'>
|
||||
<div className='number'>{
|
||||
@ -50,7 +50,7 @@ export default class BlockHeader extends React.PureComponent<Props> {
|
||||
: undefined
|
||||
}</div>
|
||||
</div>
|
||||
<div className='contains hover'>
|
||||
<div className='ui--hover contains'>
|
||||
<div className='info'>
|
||||
<div className='type'>parentHash</div>
|
||||
<div className='hash'>{
|
||||
|
||||
@ -45,9 +45,9 @@ class BlockHeaders extends React.PureComponent<Props> {
|
||||
|
||||
return (
|
||||
<div className='explorer--BlockHeaders'>
|
||||
{headers.map((header) => (
|
||||
{headers.map((header, index) => (
|
||||
<BlockHeader
|
||||
isSummary
|
||||
isSummary={index !== 0}
|
||||
key={header.blockNumber.toString()}
|
||||
value={header}
|
||||
withLink={!header.blockNumber.isZero()}
|
||||
|
||||
@ -52,7 +52,7 @@ class Events extends React.PureComponent<Props> {
|
||||
|
||||
return (
|
||||
<article
|
||||
className='explorer--Container'
|
||||
className={['explorer--Container', index ? 'ui--hoverable' : ''].join(' ')}
|
||||
key={index}
|
||||
>
|
||||
<div className='header'>
|
||||
@ -63,7 +63,7 @@ class Events extends React.PureComponent<Props> {
|
||||
: ''
|
||||
}{event.section}.{event.method}
|
||||
</h3>
|
||||
<div className='description hover'>
|
||||
<div className='ui--hover description'>
|
||||
{
|
||||
event.meta.documentation && event.meta.documentation.length
|
||||
? event.meta.documentation.map((doc) => doc.toString()).join(' ')
|
||||
@ -72,7 +72,7 @@ class Events extends React.PureComponent<Props> {
|
||||
</div>
|
||||
</div>
|
||||
<EventDisplay
|
||||
className='details hover'
|
||||
className='ui--hover details'
|
||||
value={event}
|
||||
/>
|
||||
</article>
|
||||
|
||||
@ -45,22 +45,9 @@
|
||||
.explorer--Container {
|
||||
color: inherit;
|
||||
|
||||
.hover {
|
||||
height: 0;
|
||||
opacity: 0;
|
||||
transition: none;
|
||||
transform: scale(0);
|
||||
}
|
||||
|
||||
&:hover .hover {
|
||||
height: auto;
|
||||
opacity: 1;
|
||||
transform: scale(1);
|
||||
transition: all 200ms ease-in;
|
||||
|
||||
&.description {
|
||||
margin: 0.25rem 0 0.5rem 0;
|
||||
}
|
||||
&:not(.ui--hoverable) .header .description,
|
||||
&.ui--hoverable:hover .header .description {
|
||||
margin: 0.25rem 0 0.5rem 0;
|
||||
}
|
||||
|
||||
.header {
|
||||
|
||||
@ -1,201 +0,0 @@
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
@ -1 +0,0 @@
|
||||
# @polkadot/app-rpc
|
||||
@ -1,17 +0,0 @@
|
||||
{
|
||||
"name": "@polkadot/app-rpc",
|
||||
"version": "0.22.40",
|
||||
"main": "index.js",
|
||||
"repository": "https://github.com/polkadot-js/apps.git",
|
||||
"author": "Jaco Greeff <jacogr@gmail.com>",
|
||||
"maintainers": [
|
||||
"Jaco Greeff <jacogr@gmail.com>"
|
||||
],
|
||||
"contributors": [],
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.2.0",
|
||||
"@polkadot/ui-app": "^0.22.40",
|
||||
"@polkadot/ui-signer": "^0.22.40"
|
||||
}
|
||||
}
|
||||
@ -1,37 +0,0 @@
|
||||
// Copyright 2017-2019 @polkadot/app-rpc 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 { AppProps, BareProps } from '@polkadot/ui-app/types';
|
||||
import { QueueProps } from '@polkadot/ui-app/Status/types';
|
||||
|
||||
import './index.css';
|
||||
|
||||
import React from 'react';
|
||||
import { QueueConsumer } from '@polkadot/ui-app/Status/Context';
|
||||
|
||||
import Results from './Results';
|
||||
import Selection from './Selection';
|
||||
|
||||
type Props = AppProps & BareProps;
|
||||
|
||||
export default class RpcApp extends React.PureComponent<Props> {
|
||||
render () {
|
||||
return (
|
||||
<main className='rpc--App'>
|
||||
<QueueConsumer>
|
||||
{({ txqueue, queueRpc }: QueueProps) => [
|
||||
<Selection
|
||||
key='add'
|
||||
queueRpc={queueRpc}
|
||||
/>,
|
||||
<Results
|
||||
key='results'
|
||||
queue={txqueue}
|
||||
/>
|
||||
]}
|
||||
</QueueConsumer>
|
||||
</main>
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -82,22 +82,24 @@ class CurrentList extends React.PureComponent<Props> {
|
||||
const nominators = (balances[address] || {}).nominators || [];
|
||||
|
||||
return (
|
||||
<article key={address}>
|
||||
<article
|
||||
className='ui--hoverable'
|
||||
key={address}
|
||||
>
|
||||
<AddressRow
|
||||
balance={balanceArray(address)}
|
||||
name={this.getDisplayName(address, defaultName)}
|
||||
value={address}
|
||||
withCopy={false}
|
||||
withNonce={false}
|
||||
>
|
||||
{nominators.map(({ accountId }) =>
|
||||
children={nominators.map(({ accountId }) =>
|
||||
<AddressMini
|
||||
key={accountId.toString()}
|
||||
value={accountId}
|
||||
withBalance
|
||||
/>
|
||||
)}
|
||||
</AddressRow>
|
||||
name={this.getDisplayName(address, defaultName)}
|
||||
value={address}
|
||||
withCopy={false}
|
||||
withNonce={false}
|
||||
/>
|
||||
</article>
|
||||
);
|
||||
})}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
// Copyright 2017-2019 @polkadot/app-rpc authors & contributors
|
||||
// Copyright 2017-2019 @polkadot/app-toolbox authors & contributors
|
||||
// This software may be modified and distributed under the terms
|
||||
// of the Apache-2.0 license. See the LICENSE file for details.
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
// Copyright 2017-2019 @polkadot/app-rpc authors & contributors
|
||||
// Copyright 2017-2019 @polkadot/app-toolbox authors & contributors
|
||||
// This software may be modified and distributed under the terms
|
||||
// of the Apache-2.0 license. See the LICENSE file for details.
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
/* Copyright 2017-2019 @polkadot/app-rpc authors & contributors
|
||||
/* Copyright 2017-2019 @polkadot/app-toolbox authors & contributors
|
||||
/* This software may be modified and distributed under the terms
|
||||
/* of the Apache-2.0 license. See the LICENSE file for details. */
|
||||
|
||||
35
packages/app-toolbox/src/Rpc/index.tsx
Normal file
35
packages/app-toolbox/src/Rpc/index.tsx
Normal file
@ -0,0 +1,35 @@
|
||||
// Copyright 2017-2019 @polkadot/app-toolbox 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 { BareProps } from '@polkadot/ui-app/types';
|
||||
import { QueueProps } from '@polkadot/ui-app/Status/types';
|
||||
|
||||
import './index.css';
|
||||
|
||||
import React from 'react';
|
||||
import { QueueConsumer } from '@polkadot/ui-app/Status/Context';
|
||||
|
||||
import Results from './Results';
|
||||
import Selection from './Selection';
|
||||
|
||||
type Props = BareProps;
|
||||
|
||||
export default class RpcApp extends React.PureComponent<Props> {
|
||||
render () {
|
||||
return (
|
||||
<QueueConsumer>
|
||||
{({ txqueue, queueRpc }: QueueProps) => [
|
||||
<Selection
|
||||
key='add'
|
||||
queueRpc={queueRpc}
|
||||
/>,
|
||||
<Results
|
||||
key='results'
|
||||
queue={txqueue}
|
||||
/>
|
||||
]}
|
||||
</QueueConsumer>
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
// Copyright 2017-2019 @polkadot/app-rpc authors & contributors
|
||||
// Copyright 2017-2019 @polkadot/app-toolbox authors & contributors
|
||||
// This software may be modified and distributed under the terms
|
||||
// of the Apache-2.0 license. See the LICENSE file for details.
|
||||
|
||||
@ -2,10 +2,6 @@
|
||||
/* This software may be modified and distributed under the terms
|
||||
/* of the Apache-2.0 license. See the LICENSE file for details. */
|
||||
|
||||
.toolbox--App {
|
||||
padding: 1em 2em;
|
||||
}
|
||||
|
||||
.toolbox--App-navigation.ui--Button-Group {
|
||||
margin-bottom: 2em;
|
||||
text-align: center;
|
||||
|
||||
@ -10,11 +10,12 @@ import React from 'react';
|
||||
import Tabs from '@polkadot/ui-app/Tabs';
|
||||
|
||||
import Hash from './Hash';
|
||||
import Rpc from './Rpc';
|
||||
import Sign from './Sign';
|
||||
import Verify from './Verify';
|
||||
import translate from './translate';
|
||||
|
||||
type Actions = 'hash' | 'sign' | 'verify';
|
||||
type Actions = 'hash' | 'rpc' | 'sign' | 'verify';
|
||||
|
||||
type Props = AppProps & I18nProps;
|
||||
|
||||
@ -24,13 +25,14 @@ type State = {
|
||||
|
||||
const Components: { [index: string]: React.ComponentType<any> } = {
|
||||
'hash': Hash,
|
||||
'rpc': Rpc,
|
||||
'sign': Sign,
|
||||
'verify': Verify
|
||||
};
|
||||
|
||||
class ToolboxApp extends React.PureComponent<Props, State> {
|
||||
state: State = {
|
||||
action: 'hash'
|
||||
action: 'rpc'
|
||||
};
|
||||
|
||||
render () {
|
||||
@ -38,6 +40,10 @@ class ToolboxApp extends React.PureComponent<Props, State> {
|
||||
const { action } = this.state;
|
||||
const Component = Components[action];
|
||||
const items = [
|
||||
{
|
||||
name: 'rpc',
|
||||
text: 'RPC calls'
|
||||
},
|
||||
{
|
||||
name: 'hash',
|
||||
text: t('Hash data')
|
||||
|
||||
@ -13,7 +13,6 @@ import democracy from './democracy';
|
||||
import explorer from './explorer';
|
||||
import extrinsics from './extrinsics';
|
||||
import nodeinfo from './nodeinfo';
|
||||
import rpc from './rpc';
|
||||
import settings from './settings';
|
||||
import staking from './staking';
|
||||
import storage from './storage';
|
||||
@ -47,7 +46,6 @@ const routes: Routes = appSettings.uiMode === 'light'
|
||||
null,
|
||||
settings,
|
||||
nodeinfo,
|
||||
rpc,
|
||||
toolbox,
|
||||
template
|
||||
);
|
||||
|
||||
@ -1,20 +0,0 @@
|
||||
// Copyright 2017-2019 @polkadot/apps 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 { Routes } from '../types';
|
||||
|
||||
import Rpc from '@polkadot/app-rpc/index';
|
||||
|
||||
export default ([
|
||||
{
|
||||
Component: Rpc,
|
||||
i18n: {
|
||||
defaultValue: 'Raw RPC'
|
||||
},
|
||||
icon: 'code',
|
||||
isApiGated: true,
|
||||
isHidden: false,
|
||||
name: 'rpc'
|
||||
}
|
||||
] as Routes);
|
||||
@ -16,7 +16,6 @@ const packages = [
|
||||
'app-democracy',
|
||||
'app-explorer',
|
||||
'app-extrinsics',
|
||||
'app-rpc',
|
||||
'app-settings',
|
||||
'app-staking',
|
||||
'app-nodeinfo',
|
||||
|
||||
@ -191,12 +191,12 @@ class AddressSummary extends React.PureComponent<Props> {
|
||||
protected renderChildren () {
|
||||
const { children } = this.props;
|
||||
|
||||
if (!children) {
|
||||
if (!children || (Array.isArray(children) && children.length === 0)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return (
|
||||
<div className='ui--AddressSummary-children'>
|
||||
<div className='ui--AddressSummary-children ui--hover'>
|
||||
{children}
|
||||
</div>
|
||||
);
|
||||
|
||||
@ -13,74 +13,41 @@ import ReactDOM from 'react-dom';
|
||||
import { HashRouter } from 'react-router-dom';
|
||||
import { Api } from '@polkadot/ui-api/index';
|
||||
|
||||
import AddressMini from './AddressMini';
|
||||
import AddressRow from './AddressRow';
|
||||
import AddressSummary from './AddressSummary';
|
||||
import Balance from './Balance';
|
||||
import Button from './Button';
|
||||
import Call from './Call';
|
||||
import CardSummary from './CardSummary';
|
||||
import Chart from './Chart';
|
||||
import CopyButton from './CopyButton';
|
||||
import Dropdown from './Dropdown';
|
||||
import Event from './Event';
|
||||
import Icon from './Icon';
|
||||
import IdentityIcon from './IdentityIcon';
|
||||
import Input from './Input';
|
||||
import InputAddress from './InputAddress';
|
||||
import InputError from './InputError';
|
||||
import InputExtrinsic from './InputExtrinsic';
|
||||
import InputFile from './InputFile';
|
||||
import InputNumber from './InputNumber';
|
||||
import InputRpc from './InputRpc';
|
||||
import InputStorage from './InputStorage';
|
||||
import Labelled from './Labelled';
|
||||
import Menu from './Menu';
|
||||
import Modal from './Modal';
|
||||
import Output from './Output';
|
||||
import Password from './Password';
|
||||
import Progress from './Progress';
|
||||
import Static from './Static';
|
||||
import Status from './Status';
|
||||
import Tabs from './Tabs';
|
||||
export { default as AddressMini } from './AddressMini';
|
||||
export { default as AddressRow } from './AddressRow';
|
||||
export { default as AddressSummary } from './AddressSummary';
|
||||
export { default as Balance } from './Balance';
|
||||
export { default as Button } from './Button';
|
||||
export { default as Call } from './Call';
|
||||
export { default as CardSummary } from './CardSummary';
|
||||
export { default as Chart } from './Chart';
|
||||
export { default as CopyButton } from './CopyButton';
|
||||
export { default as Dropdown } from './Dropdown';
|
||||
export { default as Event } from './Event';
|
||||
export { default as Icon } from './Icon';
|
||||
export { default as IdentityIcon } from './IdentityIcon';
|
||||
export { default as Input } from './Input';
|
||||
export { default as InputAddress } from './InputAddress';
|
||||
export { default as InputError } from './InputError';
|
||||
export { default as InputExtrinsic } from './InputExtrinsic';
|
||||
export { default as InputFile } from './InputFile';
|
||||
export { default as InputNumber } from './InputNumber';
|
||||
export { default as InputRpc } from './InputRpc';
|
||||
export { default as InputStorage } from './InputStorage';
|
||||
export { default as Labelled } from './Labelled';
|
||||
export { default as Menu } from './Menu';
|
||||
export { default as Modal } from './Modal';
|
||||
export { default as Output } from './Output';
|
||||
export { default as Password } from './Password';
|
||||
export { default as Progress } from './Progress';
|
||||
export { default as Static } from './Static';
|
||||
export { default as Status } from './Status';
|
||||
export { default as Tabs } from './Tabs';
|
||||
|
||||
type Props = BareProps & {
|
||||
url?: string
|
||||
};
|
||||
|
||||
export {
|
||||
AddressMini,
|
||||
AddressRow,
|
||||
AddressSummary,
|
||||
Balance,
|
||||
Button,
|
||||
Call,
|
||||
CardSummary,
|
||||
Chart,
|
||||
CopyButton,
|
||||
Dropdown,
|
||||
Event,
|
||||
Icon,
|
||||
IdentityIcon,
|
||||
Input,
|
||||
InputAddress,
|
||||
InputError,
|
||||
InputExtrinsic,
|
||||
InputFile,
|
||||
InputNumber,
|
||||
InputRpc,
|
||||
InputStorage,
|
||||
Labelled,
|
||||
Menu,
|
||||
Modal,
|
||||
Output,
|
||||
Password,
|
||||
Progress,
|
||||
Static,
|
||||
Status,
|
||||
Tabs
|
||||
};
|
||||
|
||||
export default function createApp (App: React.ComponentType<BareProps>, { className, style, url }: Props, rootId: string = 'root'): void {
|
||||
const rootElement = document.getElementById(rootId);
|
||||
|
||||
|
||||
@ -103,6 +103,22 @@ header .ui--Button-Group {
|
||||
padding-top: 0.5rem;
|
||||
}
|
||||
|
||||
.ui--AddressRow .ui--AddressSummary-children {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.ui--hoverable {
|
||||
.ui--AddressSummary-children.ui--hover {
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
.ui--AddressSummary-children.ui--hover {
|
||||
padding-top: 0.5rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.ui--AddressSummary .rx--updated {
|
||||
background: transparent !important;
|
||||
}
|
||||
|
||||
@ -2,6 +2,22 @@
|
||||
/* This software may be modified and distributed under the terms
|
||||
/* of the Apache-2.0 license. See the LICENSE file for details. */
|
||||
|
||||
.ui--hoverable {
|
||||
.ui--hover {
|
||||
height: 0;
|
||||
opacity: 0;
|
||||
transition: none;
|
||||
transform: scale(0);
|
||||
}
|
||||
|
||||
&:hover .ui--hover {
|
||||
height: auto;
|
||||
opacity: 1;
|
||||
transform: scale(1);
|
||||
transition: all 0.25s ease-in;
|
||||
}
|
||||
}
|
||||
|
||||
.ui--grid,
|
||||
.ui--row {
|
||||
width: 100%;
|
||||
|
||||
@ -22,13 +22,20 @@ $light-slate-gray: #718d94;
|
||||
$moonstone-blue: #64bebe;
|
||||
$verdigris: #5badad;
|
||||
|
||||
/* $primary-color: #4B77BE;
|
||||
$primary-color-hl: #6e92cb; */
|
||||
$primary-color: #2e86ab;
|
||||
$primary-color-hl: #579ebb;
|
||||
/*$primary-color: #d75ea1;
|
||||
$primary-color-hl: #d24a95;*/
|
||||
$secondary-color: #2e86ab;
|
||||
$secondary-color-hl: #579ebb;
|
||||
|
||||
/*
|
||||
$anchor-color: #d75ea1;
|
||||
$anchor-color-hover: #d24a95;
|
||||
*/
|
||||
$anchor-color: $secondary-color;
|
||||
$anchor-color-hover: $secondary-color-hl;
|
||||
|
||||
$button-primary-color: $primary-color;
|
||||
$button-primary-color-hover: $primary-color-hl;
|
||||
|
||||
@ -41,8 +48,5 @@ $button-positive-color-hover: $verdigris;
|
||||
$button-negative-color: $wild-orchid;
|
||||
$button-negative-color-hover: $middle-purple;
|
||||
|
||||
$anchor-color: $secondary-color;
|
||||
$anchor-color-hover: $secondary-color-hl;
|
||||
|
||||
$progress-bar-color: $wild-orchid;
|
||||
$nav-link: $wild-orchid;
|
||||
|
||||
@ -69,6 +69,15 @@
|
||||
background-color: $progress-bar-color;
|
||||
}
|
||||
|
||||
/*
|
||||
.ui.input > input:focus {
|
||||
border-color: $anchor-color;
|
||||
}*/
|
||||
|
||||
.ui--IdentityIcon .container.highlight:before {
|
||||
box-shadow: 0 0 5px 2px $wild-orchid;
|
||||
}
|
||||
|
||||
a {
|
||||
color: $anchor-color;
|
||||
}
|
||||
|
||||
@ -9,7 +9,6 @@
|
||||
"@polkadot/app-democracy/*": [ "packages/app-democracy/src/*" ],
|
||||
"@polkadot/app-explorer/*": [ "packages/app-explorer/src/*" ],
|
||||
"@polkadot/app-extrinsics/*": [ "packages/app-extrinsics/src/*" ],
|
||||
"@polkadot/app-rpc/*": [ "packages/app-rpc/src/*" ],
|
||||
"@polkadot/app-settings/*": [ "packages/app-settings/src/*" ],
|
||||
"@polkadot/app-staking/*": [ "packages/app-staking/src/*" ],
|
||||
"@polkadot/app-nodeinfo/*": [ "packages/app-nodeinfo/src/*" ],
|
||||
|
||||
Loading…
Reference in New Issue
Block a user