Pārlūkot izejas kodu

Post-merge linter autofix

Leszek Wiesner 4 gadi atpakaļ
vecāks
revīzija
e44dd4a08e

+ 8 - 8
pioneer/packages/joy-proposals/src/Proposal/Body.tsx

@@ -5,14 +5,14 @@ import { blake2AsHex } from '@polkadot/util-crypto';
 import styled from 'styled-components';
 import AddressMini from '@polkadot/react-components/AddressMiniJoy';
 import TxButton from '@polkadot/joy-utils/TxButton';
-import { ProposalId } from "@joystream/types/proposals";
-import { MemberId } from "@joystream/types/members";
-import ProfilePreview from "@polkadot/joy-utils/MemberProfilePreview";
-import { useTransport, usePromise } from "@polkadot/joy-utils/react/hooks";
-import { Profile } from "@joystream/types/members";
-import { Option } from "@polkadot/types/";
-import { formatBalance } from "@polkadot/util";
-import { PromiseComponent } from "@polkadot/joy-utils/react/components";
+import { ProposalId } from '@joystream/types/proposals';
+import { MemberId, Profile } from '@joystream/types/members';
+import ProfilePreview from '@polkadot/joy-utils/MemberProfilePreview';
+import { useTransport, usePromise } from '@polkadot/joy-utils/react/hooks';
+
+import { Option } from '@polkadot/types/';
+import { formatBalance } from '@polkadot/util';
+import { PromiseComponent } from '@polkadot/joy-utils/react/components';
 import ReactMarkdown from 'react-markdown';
 
 type BodyProps = {

+ 0 - 1
pioneer/packages/joy-proposals/src/Proposal/Details.tsx

@@ -6,7 +6,6 @@ import styled from 'styled-components';
 
 import ProfilePreview from '@polkadot/joy-utils/MemberProfilePreview';
 
-
 const DetailsContainer = styled(Item.Group)`
   display: grid;
   width: auto;

+ 14 - 14
pioneer/packages/joy-proposals/src/Proposal/ProposalDetails.tsx

@@ -1,21 +1,21 @@
 import React from 'react';
 
-import Details from "./Details";
-import Body from "./Body";
-import VotingSection from "./VotingSection";
-import Votes from "./Votes";
-import { MyAccountProps, withMyAccount } from "@polkadot/joy-utils/MyAccount"
-import { ParsedProposal, ProposalVote } from "@polkadot/joy-utils/types/proposals";
+import Details from './Details';
+import Body from './Body';
+import VotingSection from './VotingSection';
+import Votes from './Votes';
+import { MyAccountProps, withMyAccount } from '@polkadot/joy-utils/MyAccount';
+import { ParsedProposal, ProposalVote } from '@polkadot/joy-utils/types/proposals';
 import { withCalls } from '@polkadot/react-api';
 import { withMulti } from '@polkadot/react-api/with';
 
-import "./Proposal.css";
-import { ProposalId, ProposalDecisionStatuses, ApprovedProposalStatuses, ExecutionFailedStatus } from "@joystream/types/proposals";
-import { BlockNumber } from '@polkadot/types/interfaces'
-import { MemberId } from "@joystream/types/members";
-import { Seat } from "@joystream/types/";
-import { PromiseComponent } from "@polkadot/joy-utils/react/components";
-import ProposalDiscussion from "./discussion/ProposalDiscussion";
+import './Proposal.css';
+import { ProposalId, ProposalDecisionStatuses, ApprovedProposalStatuses, ExecutionFailedStatus } from '@joystream/types/proposals';
+import { BlockNumber } from '@polkadot/types/interfaces';
+import { MemberId } from '@joystream/types/members';
+import { Seat } from '@joystream/types/';
+import { PromiseComponent } from '@polkadot/joy-utils/react/components';
+import ProposalDiscussion from './discussion/ProposalDiscussion';
 
 import styled from 'styled-components';
 
@@ -148,7 +148,7 @@ function ProposalDetails ({
           proposerId={ proposal.proposerId }
           isCancellable={ isVotingPeriod }
           cancellationFee={ proposal.cancellationFee }
-          />
+        />
         <ProposalDetailsVoting>
           { iAmCouncilMember && (
             <VotingSection

+ 7 - 8
pioneer/packages/joy-proposals/src/Proposal/VotingSection.tsx

@@ -1,13 +1,12 @@
 import React, { useState } from 'react';
 
-import { Icon, Button, Message, Divider, Header } from "semantic-ui-react";
-import useVoteStyles from "./useVoteStyles";
-import TxButton from "@polkadot/joy-utils/TxButton";
-import { MemberId } from "@joystream/types/members";
-import { ProposalId } from "@joystream/types/proposals";
-import { useTransport, usePromise } from "@polkadot/joy-utils/react/hooks";
-import { VoteKind } from '@joystream/types/proposals';
-import { VoteKinds } from "@joystream/types/proposals";
+import { Icon, Button, Message, Divider, Header } from 'semantic-ui-react';
+import useVoteStyles from './useVoteStyles';
+import TxButton from '@polkadot/joy-utils/TxButton';
+import { MemberId } from '@joystream/types/members';
+import { ProposalId, VoteKind, VoteKinds } from '@joystream/types/proposals';
+import { useTransport, usePromise } from '@polkadot/joy-utils/react/hooks';
+
 import styled from 'styled-components';
 
 const VoteButtons = styled.div`

+ 47 - 47
pioneer/packages/joy-proposals/src/Proposal/discussion/DiscussionPost.tsx

@@ -1,10 +1,10 @@
-import React, { useState } from "react";
-import { Button, Icon } from "semantic-ui-react";
+import React, { useState } from 'react';
+import { Button, Icon } from 'semantic-ui-react';
 import { ParsedPost } from '@polkadot/joy-utils/types/proposals';
-import MemberProfilePreview from "@polkadot/joy-utils/MemberProfilePreview";
+import MemberProfilePreview from '@polkadot/joy-utils/MemberProfilePreview';
 import DiscussionPostForm from './DiscussionPostForm';
-import { MemberId } from "@joystream/types/members";
-import { useTransport } from "@polkadot/joy-utils/react/hooks";
+import { MemberId } from '@joystream/types/members';
+import { useTransport } from '@polkadot/joy-utils/react/hooks';
 import styled from 'styled-components';
 import ReactMarkdown from 'react-markdown';
 
@@ -47,13 +47,13 @@ type ProposalDiscussionPostProps = {
   refreshDiscussion: () => void;
 }
 
-export default function DiscussionPost({
+export default function DiscussionPost ({
   post,
   memberId,
   refreshDiscussion
 }: ProposalDiscussionPostProps) {
   const { author, authorId, text, createdAt, editsCount } = post;
-  const [ editing, setEditing ] = useState(false);
+  const [editing, setEditing] = useState(false);
   const constraints = useTransport().proposals.discussionContraints();
   const canEdit = (
     memberId &&
@@ -68,44 +68,44 @@ export default function DiscussionPost({
 
   return (
     (memberId && editing) ? (
-        <DiscussionPostForm
-          memberId={memberId}
-          threadId={post.threadId}
-          post={post}
-          onSuccess={onEditSuccess}
-          constraints={constraints}/>
-      ) : (
-        <StyledComment>
-          <AuthorAndDate>
-            { author && (
-              <Author>
-                <MemberProfilePreview
-                  avatar_uri={author.avatar_uri.toString()}
-                  handle={author.handle.toString()}
-                  root_account={author.root_account.toString()}/>
-              </Author>
-            ) }
-            <CreationDate>
-              <span>{ createdAt.toLocaleString() }</span>
-            </CreationDate>
-          </AuthorAndDate>
-          <ContentAndActions>
-            <CommentContent>
-              <ReactMarkdown source={text} linkTarget='_blank' />
-            </CommentContent>
-            { canEdit && (
-              <CommentActions>
-                <CommentAction
-                  onClick={() => setEditing(true)}
-                  primary
-                  size="tiny"
-                  icon>
-                  <Icon name="pencil" />
-                </CommentAction>
-              </CommentActions>
-            ) }
-          </ContentAndActions>
-        </StyledComment>
-      )
-  )
+      <DiscussionPostForm
+        memberId={memberId}
+        threadId={post.threadId}
+        post={post}
+        onSuccess={onEditSuccess}
+        constraints={constraints}/>
+    ) : (
+      <StyledComment>
+        <AuthorAndDate>
+          { author && (
+            <Author>
+              <MemberProfilePreview
+                avatar_uri={author.avatar_uri.toString()}
+                handle={author.handle.toString()}
+                root_account={author.root_account.toString()}/>
+            </Author>
+          ) }
+          <CreationDate>
+            <span>{ createdAt.toLocaleString() }</span>
+          </CreationDate>
+        </AuthorAndDate>
+        <ContentAndActions>
+          <CommentContent>
+            <ReactMarkdown source={text} linkTarget='_blank' />
+          </CommentContent>
+          { canEdit && (
+            <CommentActions>
+              <CommentAction
+                onClick={() => setEditing(true)}
+                primary
+                size="tiny"
+                icon>
+                <Icon name="pencil" />
+              </CommentAction>
+            </CommentActions>
+          ) }
+        </ContentAndActions>
+      </StyledComment>
+    )
+  );
 }

+ 39 - 39
pioneer/packages/joy-proposals/src/Proposal/discussion/DiscussionPostForm.tsx

@@ -76,48 +76,48 @@ const DiscussionPostFormInner = (props: InnerProps) => {
   };
 
   return (
-      <Form className="ui form JoyForm">
-        <LabelledField name='text' {...props}>
-          <Field
-            component='textarea'
-            id='text'
-            name='text'
+    <Form className="ui form JoyForm">
+      <LabelledField name='text' {...props}>
+        <Field
+          component='textarea'
+          id='text'
+          name='text'
+          disabled={isSubmitting}
+          rows={5}
+          placeholder='Content of the post...' />
+      </LabelledField>
+      <LabelledField invisibleLabel {...props}>
+        <TxButton
+          type="submit"
+          size="large"
+          label={isEditForm ? 'Update' : 'Add Post'}
+          isDisabled={isSubmitting || !isValid}
+          params={buildTxParams()}
+          tx={isEditForm ? 'proposalsDiscussion.updatePost' : 'proposalsDiscussion.addPost'}
+          onClick={onSubmit}
+          txFailedCb={onTxFailed}
+          txSuccessCb={onTxSuccess}
+        />
+        { isEditForm ? (
+          <Button
+            type="button"
+            size="large"
             disabled={isSubmitting}
-            rows={5}
-            placeholder='Content of the post...' />
-        </LabelledField>
-        <LabelledField invisibleLabel {...props}>
-          <TxButton
-            type="submit"
+            color="red"
+            onClick={() => onSuccess()}
+            content="Cancel"
+          />
+        ) : (
+          <Button
+            type="button"
             size="large"
-            label={isEditForm ? 'Update' : 'Add Post'}
-            isDisabled={isSubmitting || !isValid}
-            params={buildTxParams()}
-            tx={isEditForm ? 'proposalsDiscussion.updatePost' : 'proposalsDiscussion.addPost'}
-            onClick={onSubmit}
-            txFailedCb={onTxFailed}
-            txSuccessCb={onTxSuccess}
+            disabled={isSubmitting}
+            onClick={() => resetForm()}
+            content="Clear"
           />
-          { isEditForm ? (
-            <Button
-              type="button"
-              size="large"
-              disabled={isSubmitting}
-              color="red"
-              onClick={() => onSuccess()}
-              content="Cancel"
-            />
-          ) : (
-            <Button
-              type="button"
-              size="large"
-              disabled={isSubmitting}
-              onClick={() => resetForm()}
-              content="Clear"
-            />
-          ) }
-        </LabelledField>
-      </Form>
+        ) }
+      </LabelledField>
+    </Form>
   );
 };
 

+ 15 - 15
pioneer/packages/joy-proposals/src/Proposal/discussion/ProposalDiscussion.tsx

@@ -1,19 +1,19 @@
-import React from "react";
-import { Divider, Header } from "semantic-ui-react";
-import { useTransport, usePromise } from "@polkadot/joy-utils/react/hooks";
+import React from 'react';
+import { Divider, Header } from 'semantic-ui-react';
+import { useTransport, usePromise } from '@polkadot/joy-utils/react/hooks';
 import { ProposalId } from '@joystream/types/proposals';
-import { ParsedDiscussion} from '@polkadot/joy-utils/types/proposals'
+import { ParsedDiscussion } from '@polkadot/joy-utils/types/proposals';
 import { PromiseComponent } from '@polkadot/joy-utils/react/components';
 import DiscussionPost from './DiscussionPost';
 import DiscussionPostForm from './DiscussionPostForm';
-import { MemberId } from "@joystream/types/members";
+import { MemberId } from '@joystream/types/members';
 
 type ProposalDiscussionProps = {
   proposalId: ProposalId;
   memberId?: MemberId;
 };
 
-export default function ProposalDiscussion({
+export default function ProposalDiscussion ({
   proposalId,
   memberId
 }: ProposalDiscussionProps) {
@@ -31,16 +31,16 @@ export default function ProposalDiscussion({
           <Header as="h3">Discussion ({ discussion.posts.length})</Header>
           <Divider />
           { discussion.posts.length ? (
-              discussion.posts.map((post, key) => (
-                <DiscussionPost
-                  key={post.postId ? post.postId.toNumber() : `k-${key}`}
-                  post={post}
-                  memberId={memberId}
-                  refreshDiscussion={refreshDiscussion}/>
-              ))
-            )
+            discussion.posts.map((post, key) => (
+              <DiscussionPost
+                key={post.postId ? post.postId.toNumber() : `k-${key}`}
+                post={post}
+                memberId={memberId}
+                refreshDiscussion={refreshDiscussion}/>
+            ))
+          )
             : (
-              <Header as="h4" style={{ margin: '1rem 0'}}>Nothing has been posted here yet!</Header>
+              <Header as="h4" style={{ margin: '1rem 0' }}>Nothing has been posted here yet!</Header>
             )
           }
           { memberId && (

+ 2 - 2
pioneer/packages/joy-utils/src/functions/misc.ts

@@ -1,6 +1,6 @@
 import { Bytes } from '@polkadot/types/primitive';
 
-export function includeKeys<T extends { [k: string]: any }>(obj: T, ...allowedKeys: string[]) {
+export function includeKeys<T extends { [k: string]: any }> (obj: T, ...allowedKeys: string[]) {
   return Object.keys(obj).filter(objKey => {
     return allowedKeys.reduce(
       (hasAllowed: boolean, allowedKey: string) => hasAllowed || objKey.includes(allowedKey),
@@ -9,6 +9,6 @@ export function includeKeys<T extends { [k: string]: any }>(obj: T, ...allowedKe
   });
 }
 
-export function bytesToString(bytes: Bytes) {
+export function bytesToString (bytes: Bytes) {
   return Buffer.from(bytes.toString().substr(2), 'hex').toString();
 }

+ 8 - 8
pioneer/packages/joy-utils/src/transport/base.ts

@@ -1,9 +1,9 @@
-import { ApiPromise } from "@polkadot/api";
+import { ApiPromise } from '@polkadot/api';
 import { Observable } from 'rxjs';
 import { StorageEntryBase } from '@polkadot/api/types';
 import { CodecArg, Codec } from '@polkadot/types/types';
 
-type ApiMethod = StorageEntryBase<"promise", (arg1?: CodecArg, arg2?: CodecArg) => Observable<Codec>>;
+type ApiMethod = StorageEntryBase<'promise', (arg1?: CodecArg, arg2?: CodecArg) => Observable<Codec>>;
 
 export default abstract class BaseTransport {
   protected api: ApiPromise;
@@ -20,11 +20,11 @@ export default abstract class BaseTransport {
     return this.api.query.proposalsCodex;
   }
 
-  protected get proposalsDiscussion() {
+  protected get proposalsDiscussion () {
     return this.api.query.proposalsDiscussion;
   }
 
-  protected get members() {
+  protected get members () {
     return this.api.query.members;
   }
 
@@ -58,18 +58,18 @@ export default abstract class BaseTransport {
     method: ApiMethod,
     firstKey: Codec,
     valueConverter: (hex: string) => T
-  ): Promise<{ storageKey: string, value: T}[]> {
+  ): Promise<{ storageKey: string; value: T}[]> {
     const entryKey = method.key(firstKey, 0);
     const entryKeyPrefix = entryKey.toString().substr(0, 66); // "0x" + 64 hex characters (32 bytes)
     const allEntryKeys = await this.api.rpc.state.getKeys(entryKeyPrefix);
-    let entries: { storageKey: string, value: T }[] = [];
-    for (let key of allEntryKeys) {
+    const entries: { storageKey: string; value: T }[] = [];
+    for (const key of allEntryKeys) {
       const value: any = await this.api.rpc.state.getStorage(key);
       if (typeof value === 'object' && value !== null && value.raw) {
         entries.push({
           storageKey: key.toString(),
           value: valueConverter(value.raw.toString())
-        })
+        });
       }
     }
 

+ 17 - 18
pioneer/packages/joy-utils/src/transport/proposals.ts

@@ -6,18 +6,18 @@ import {
   ParsedPost,
   ParsedDiscussion,
   DiscussionContraints
-} from "../types/proposals";
-import { ParsedMember } from "../types/members";
+} from '../types/proposals';
+import { ParsedMember } from '../types/members';
 
 import BaseTransport from './base';
 
-import { ThreadId, PostId } from "@joystream/types/forum";
-import { Proposal, ProposalId, VoteKind, DiscussionThread, DiscussionPost } from "@joystream/types/proposals";
-import { MemberId } from "@joystream/types/members";
-import { u32 } from "@polkadot/types/";
-import { BalanceOf } from "@polkadot/types/interfaces";
+import { ThreadId, PostId } from '@joystream/types/forum';
+import { Proposal, ProposalId, VoteKind, DiscussionThread, DiscussionPost } from '@joystream/types/proposals';
+import { MemberId } from '@joystream/types/members';
+import { u32 } from '@polkadot/types/';
+import { BalanceOf, EventRecord } from '@polkadot/types/interfaces';
 
-import { includeKeys, bytesToString } from "../functions/misc";
+import { includeKeys, bytesToString } from '../functions/misc';
 import _ from 'lodash';
 import proposalsConsts from '../consts/proposals';
 
@@ -27,7 +27,6 @@ import ChainTransport from './chain';
 import CouncilTransport from './council';
 
 import { Vec } from '@polkadot/types/codec';
-import { EventRecord } from '@polkadot/types/interfaces';
 
 export default class ProposalsTransport extends BaseTransport {
   private membersT: MembersTransport;
@@ -185,15 +184,15 @@ export default class ProposalsTransport extends BaseTransport {
   // Find postId having only the object and storage key
   // FIXME: TODO: This is necessary because of the "hacky" workaround described in ./base.ts
   // (in order to avoid fetching all posts ever created)
-  async findPostId(post: DiscussionPost, storageKey: string): Promise<PostId | null> {
+  async findPostId (post: DiscussionPost, storageKey: string): Promise<PostId | null> {
     const blockHash = await this.api.rpc.chain.getBlockHash(post.created_at);
     const events = await this.api.query.system.events.at(blockHash) as Vec<EventRecord>;
     const postIds: PostId[] = events
-      .filter(({event}) => event.section === 'proposalsDiscussion' && event.method === 'PostCreated')
-      .map(({event}) => event.data[0] as PostId);
+      .filter(({ event }) => event.section === 'proposalsDiscussion' && event.method === 'PostCreated')
+      .map(({ event }) => event.data[0] as PostId);
 
     // Just in case there were multiple posts created in this block...
-    for (let postId of postIds) {
+    for (const postId of postIds) {
       const foundPostKey = await this.proposalsDiscussion.postThreadIdByPostId.key(post.thread_id, postId);
       if (foundPostKey === storageKey) return postId;
     }
@@ -201,7 +200,7 @@ export default class ProposalsTransport extends BaseTransport {
     return null;
   }
 
-  async discussion(id: number|ProposalId): Promise<ParsedDiscussion | null> {
+  async discussion (id: number|ProposalId): Promise<ParsedDiscussion | null> {
     const threadId = (await this.proposalsCodex.threadIdByProposalId(id)) as ThreadId;
     if (!threadId.toNumber()) {
       return null;
@@ -213,8 +212,8 @@ export default class ProposalsTransport extends BaseTransport {
       (v) => new DiscussionPost(v)
     );
 
-    let parsedPosts: ParsedPost[] = [];
-    for (let { storageKey, value: post } of postEntries) {
+    const parsedPosts: ParsedPost[] = [];
+    for (const { storageKey, value: post } of postEntries) {
       parsedPosts.push({
         postId: await this.findPostId(post, storageKey),
         threadId: post.thread_id,
@@ -226,11 +225,11 @@ export default class ProposalsTransport extends BaseTransport {
         authorId: post.author_id,
         author: (await this.membersT.memberProfile(post.author_id)).unwrapOr(null),
         editsCount: post.edition_number.toNumber()
-      })
+      });
     }
 
     // Sort by creation block asc
-    parsedPosts.sort((a,b) => a.createdAtBlock - b.createdAtBlock);
+    parsedPosts.sort((a, b) => a.createdAtBlock - b.createdAtBlock);
 
     return {
       title: bytesToString(thread.title),

+ 7 - 7
pioneer/packages/joy-utils/src/types/proposals.ts

@@ -1,7 +1,7 @@
-import { ProposalId, VoteKind } from "@joystream/types/proposals";
-import { MemberId, Profile } from "@joystream/types/members";
-import { ThreadId, PostId } from "@joystream/types/forum";
-import { ParsedMember } from "./members";
+import { ProposalId, VoteKind } from '@joystream/types/proposals';
+import { MemberId, Profile } from '@joystream/types/members';
+import { ThreadId, PostId } from '@joystream/types/forum';
+import { ParsedMember } from './members';
 
 export const ProposalTypes = [
   'Text',
@@ -80,9 +80,9 @@ export type ParsedPost = {
 };
 
 export type ParsedDiscussion = {
-  title: string,
-  threadId: ThreadId,
-  posts: ParsedPost[]
+  title: string;
+  threadId: ThreadId;
+  posts: ParsedPost[];
 };
 
 export type DiscussionContraints = {