Leszek Wiesner d906268cd4 My roles - add Worker ID %!s(int64=4) %!d(string=hai) anos
..
.storybook 643c08c7a0 Pioneer workspaces config etc. %!s(int64=4) %!d(string=hai) anos
img ac5952ef16 Move to subfolder %!s(int64=4) %!d(string=hai) anos
packages d906268cd4 My roles - add Worker ID %!s(int64=4) %!d(string=hai) anos
scripts ac5952ef16 Move to subfolder %!s(int64=4) %!d(string=hai) anos
src ac5952ef16 Move to subfolder %!s(int64=4) %!d(string=hai) anos
test ac5952ef16 Move to subfolder %!s(int64=4) %!d(string=hai) anos
.123trigger ac5952ef16 Move to subfolder %!s(int64=4) %!d(string=hai) anos
.babelrc.js ac5952ef16 Move to subfolder %!s(int64=4) %!d(string=hai) anos
.codeclimate.yml ac5952ef16 Move to subfolder %!s(int64=4) %!d(string=hai) anos
.dockerignore ac5952ef16 Move to subfolder %!s(int64=4) %!d(string=hai) anos
.editorconfig ac5952ef16 Move to subfolder %!s(int64=4) %!d(string=hai) anos
.eslintignore ac5952ef16 Move to subfolder %!s(int64=4) %!d(string=hai) anos
.eslintrc.js ff1ab2c7e2 Merge branch 'eslint-config' into test-nicea-linting %!s(int64=4) %!d(string=hai) anos
.gitignore ac5952ef16 Move to subfolder %!s(int64=4) %!d(string=hai) anos
.gitlab-ci.yml ac5952ef16 Move to subfolder %!s(int64=4) %!d(string=hai) anos
.npmignore ac5952ef16 Move to subfolder %!s(int64=4) %!d(string=hai) anos
.nvmrc ac5952ef16 Move to subfolder %!s(int64=4) %!d(string=hai) anos
.prettierignore 77557015db prevent accidental prettier applying to pioneer/ %!s(int64=4) %!d(string=hai) anos
.travis.yml ac5952ef16 Move to subfolder %!s(int64=4) %!d(string=hai) anos
BOUNTIES.md ac5952ef16 Move to subfolder %!s(int64=4) %!d(string=hai) anos
CHANGELOG.md ac5952ef16 Move to subfolder %!s(int64=4) %!d(string=hai) anos
CONTRIBUTING.md ac5952ef16 Move to subfolder %!s(int64=4) %!d(string=hai) anos
Dockerfile ac5952ef16 Move to subfolder %!s(int64=4) %!d(string=hai) anos
LICENSE ac5952ef16 Move to subfolder %!s(int64=4) %!d(string=hai) anos
README.md ac5952ef16 Move to subfolder %!s(int64=4) %!d(string=hai) anos
babel.config.js 3da9de8ede Autofix %!s(int64=4) %!d(string=hai) anos
deployment.extras.yml ac5952ef16 Move to subfolder %!s(int64=4) %!d(string=hai) anos
deployment.template.yml ac5952ef16 Move to subfolder %!s(int64=4) %!d(string=hai) anos
gh-pages-refresh.sh ac5952ef16 Move to subfolder %!s(int64=4) %!d(string=hai) anos
i18next-scanner.config.js ac5952ef16 Move to subfolder %!s(int64=4) %!d(string=hai) anos
jest.config.js ac5952ef16 Move to subfolder %!s(int64=4) %!d(string=hai) anos
lerna.json ac5952ef16 Move to subfolder %!s(int64=4) %!d(string=hai) anos
package.json 35d03a9808 types version bump, local packages use relative path instead of version %!s(int64=4) %!d(string=hai) anos
postcss.config.js ac5952ef16 Move to subfolder %!s(int64=4) %!d(string=hai) anos
tsconfig.json 5487b25c02 Remove outdated joy-storage package %!s(int64=4) %!d(string=hai) anos
tsfmt.json ac5952ef16 Move to subfolder %!s(int64=4) %!d(string=hai) anos
types.json ac5952ef16 Move to subfolder %!s(int64=4) %!d(string=hai) anos

README.md

Content Directory

A Portal into the Joystream network. Provides a view and interaction layer from a browser.

This can be accessed as a hosted application via https://testnet.joystream.org.

overview

The repo is split into a number of packages, each representing an application. These are -

  • apps This is the main entry point. It handles the selection sidebar and routing to the specific application being displayed.
  • app-accounts A basic account management app.
  • app-address-book A basic address management app.
  • app-explorer A simple block explorer. It only shows the most recent blocks, updating as they become available.
  • app-extrinsics Submission of extrinsics to a node.
  • app-js An online code editor with @polkadot-js/api access to the currently connected node.
  • app-settings A basic settings management app, allowing choice of language, node to connect to, and theme
  • app-staking A basic staking management app, allowing staking and nominations.
  • app-storage A simple node storage query application. Multiple queries can be queued and updates as new values become available.
  • app-toolbox Submission of raw data to RPC endpoints and utility hashing functions.
  • app-transfer A basic account management app, allowing transfer of Units/DOTs between accounts.

In addition the following libraries are also included in the repo. These are to be moved to the @polkadot/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)

  • react-components A reactive (using RxJS) application framework with a number of useful shared components.
  • react-signer Signer implementation for apps.
  • react-query Base components that use the RxJS Observable APIs

development

Contributions are welcome!

To start off, this repo (along with others in the @polkadot family) uses yarn workspaces to organise the code. As such, after cloning dependencies should be installed via yarn, not via npm, the latter will result in broken dependencies.

To get started -

  1. Clone the repo locally, via git clone https://github.com/joystream/apps <optional local path>
  2. Ensure that you have a recent LTS version of Node.js, for development purposes Node >=10.13.0 is recommended.
  3. Ensure that you have a recent version of Yarn, for development purposes Yarn >=1.10.1 is required.
  4. Install the dependencies by running yarn
  5. Ready! Now you can launch the UI (assuming you have a local Polkadot Node running), via yarn run start
  6. Access the UI via http://localhost:3000

Storybook

There is a StoryBook implementation, the UI for which can be started with yarn storybook and then accessed in a browser via http://localhost:3001 (and the server will open a new browser tab by default when it starts).

Story code can be placed anywhere in the packages directory, and will be detected as long as the file name ends in `.stories.tsx. Stories should be defined in the Component Story Format (CSF) for consistency.

There are several StoryBook addons available, the most useful of which is Knobs, which allows props to be altered in real time.

Note that currently StoryBook only allows for stateless components; it has no connection to polkadot.js or any Substrate node. This means that existing components, which are often tightly coupled with the Polkadot API, cannot be used in storybook.