Skip to content

Commit

Permalink
adding sub-tabs for listings in progress, fixing bug in core related …
Browse files Browse the repository at this point in the history
…to can challenge be resolved

removing logs

running prettier
  • Loading branch information
nickreynolds committed May 21, 2018
1 parent 3256213 commit e053451
Show file tree
Hide file tree
Showing 6 changed files with 118 additions and 87 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -63,5 +63,5 @@ export function canResolveChallenge(challengeData: ChallengeData): boolean {
* @param challengeData this ChallengeData to check
*/
export function doesChallengeHaveAppeal(challengeData: ChallengeData): boolean {
return !challengeData.appeal || is0x0Address(challengeData!.appeal!.requester.toString());
return challengeData.appeal! && !is0x0Address(challengeData!.appeal!.requester.toString());
}
16 changes: 2 additions & 14 deletions packages/core/src/utils/listingDataHelpers/listingHelper.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { ListingData } from "../../types";
import { isChallengeInCommitStage, isChallengeInRevealStage } from "./challengeHelper";
import { isChallengeInCommitStage, isChallengeInRevealStage, canResolveChallenge } from "./challengeHelper";
import { isAwaitingAppealChallenge, canAppealBeResolved } from "./appealHelper";
import { isAppealChallengeInCommitStage, isAppealChallengeInRevealStage } from "./appealChallengeHelper";

Expand Down Expand Up @@ -106,19 +106,7 @@ export function isAwaitingAppealRequest(listingData: ListingData): boolean {
*/
export function canChallengeBeResolved(listingData: ListingData): boolean {
const challenge = listingData.challenge;
if (challenge) {
if (challenge.appeal) {
return false;
} else {
return (
!isChallengeInCommitStage(challenge) &&
!isChallengeInRevealStage(challenge) &&
!isAwaitingAppealRequest(listingData)
);
}
} else {
return false;
}
return canResolveChallenge(challenge!);
}

/**
Expand Down
79 changes: 7 additions & 72 deletions packages/dapp/src/components/listinglist/Listings.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,10 @@ import { Tab } from "../tabs/Tab";
import ListingList from "./ListingList";
import { connect } from "react-redux";
import { State } from "../../reducers";
import ListingsInProgress from "./ListingsInProgress";

export interface ListingProps {
applications: Set<string>;
whitelistedListings: Set<string>;
readyToWhitelistListings: Set<string>;
inChallengeCommitListings: Set<string>;
inChallengeRevealListings: Set<string>;
awaitingAppealRequestListings: Set<string>;
awaitingAppealJudgmentListings: Set<string>;
awaitingAppealChallengeListings: Set<string>;
appealChallengeCommitPhaseListings: Set<string>;
appealChallengeRevealPhaseListings: Set<string>;
resolveAppealListings: Set<string>;
rejectedListings: Set<string>;
error: undefined | string;
}
Expand All @@ -28,80 +19,24 @@ class Listings extends React.Component<ListingProps> {
return (
<Tabs>
<Tab tabText={"WHITELISTED NEWSROOMS"}>
<div>
<ListingList listings={this.props.whitelistedListings} />
</div>
<ListingList listings={this.props.whitelistedListings} />
</Tab>
<Tab tabText={"NEWSROOMS UNDER CONSIDERATION"}>
<div>
Applications:<br />
<ListingList listings={this.props.applications} />
<br />
Ready to be Whitelisted:<br />
<ListingList listings={this.props.readyToWhitelistListings} />
<br />
In Challenge Vote-Commit:<br />
<ListingList listings={this.props.inChallengeCommitListings} />
<br />
In Challenge Vote-Reveal:<br />
<ListingList listings={this.props.inChallengeRevealListings} />
<br />
Awaiting Appeal Request:<br />
<ListingList listings={this.props.awaitingAppealRequestListings} />
<br />
Awaiting Appeal Judgment:<br />
<ListingList listings={this.props.awaitingAppealJudgmentListings} />
<br />
Awaiting Appeal Challenge:<br />
<ListingList listings={this.props.awaitingAppealChallengeListings} />
<br />
Appeal Challenge in Commit:<br />
<ListingList listings={this.props.appealChallengeCommitPhaseListings} />
<br />
Appeal Challenge in Reveal:<br />
<ListingList listings={this.props.appealChallengeRevealPhaseListings} />
<br />
Appeal Can Be Resolved:<br />
<ListingList listings={this.props.resolveAppealListings} />
<br />
Rejected Listings:<br />
<ListingList listings={this.props.rejectedListings} />
<br />
</div>
<ListingsInProgress />
</Tab>
<Tab tabText={"REJECTED NEWSROOMS"}>
<ListingList listings={this.props.rejectedListings} />
</Tab>
</Tabs>
);
}
}

const mapStateToProps = (state: State): ListingProps => {
const {
applications,
whitelistedListings,
readyToWhitelistListings,
inChallengeCommitListings,
inChallengeRevealListings,
awaitingAppealRequestListings,
awaitingAppealJudgmentListings,
awaitingAppealChallengeListings,
appealChallengeCommitPhaseListings,
appealChallengeRevealPhaseListings,
resolveAppealListings,
rejectedListings,
} = state;
const { whitelistedListings, rejectedListings } = state;

return {
applications,
whitelistedListings,
readyToWhitelistListings,
inChallengeCommitListings,
inChallengeRevealListings,
awaitingAppealRequestListings,
awaitingAppealJudgmentListings,
awaitingAppealChallengeListings,
appealChallengeCommitPhaseListings,
appealChallengeRevealPhaseListings,
resolveAppealListings,
rejectedListings,
error: undefined,
};
Expand Down
91 changes: 91 additions & 0 deletions packages/dapp/src/components/listinglist/ListingsInProgress.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
import * as React from "react";
import { Set } from "immutable";
import { Tabs } from "../tabs/Tabs";
import { Tab } from "../tabs/Tab";

import ListingList from "./ListingList";
import { connect } from "react-redux";
import { State } from "../../reducers";

export interface ListingProps {
applications: Set<string>;
readyToWhitelistListings: Set<string>;
inChallengeCommitListings: Set<string>;
inChallengeRevealListings: Set<string>;
awaitingAppealRequestListings: Set<string>;
awaitingAppealJudgmentListings: Set<string>;
awaitingAppealChallengeListings: Set<string>;
appealChallengeCommitPhaseListings: Set<string>;
appealChallengeRevealPhaseListings: Set<string>;
resolveChallengeListings: Set<string>;
resolveAppealListings: Set<string>;
}

class ListingsInProgress extends React.Component<ListingProps> {
public render(): JSX.Element {
const applications = this.props.applications;
const beingChallenged = this.props.inChallengeCommitListings
.merge(this.props.inChallengeRevealListings)
.merge(this.props.awaitingAppealRequestListings);
const consideringAppeal = this.props.awaitingAppealJudgmentListings.merge(
this.props.awaitingAppealChallengeListings,
);
const appealChallenge = this.props.appealChallengeCommitPhaseListings.merge(
this.props.appealChallengeRevealPhaseListings,
);
const readyToUpdate = this.props.readyToWhitelistListings
.merge(this.props.resolveChallengeListings)
.merge(this.props.resolveAppealListings);
return (
<Tabs>
<Tab tabText={"Applications (" + applications.count() + ")"}>
<ListingList listings={applications} />
</Tab>
<Tab tabText={"Being Challenged (" + beingChallenged.count() + ")"}>
<ListingList listings={beingChallenged} />
</Tab>
<Tab tabText={"Appeal Being Considered (" + consideringAppeal.count() + ")"}>
<ListingList listings={consideringAppeal} />
</Tab>
<Tab tabText={"Appeal Being Challenged (" + appealChallenge.count() + ")"}>
<ListingList listings={appealChallenge} />
</Tab>
<Tab tabText={"Ready to Update (" + readyToUpdate.count() + ")"}>
<ListingList listings={readyToUpdate} />
</Tab>
</Tabs>
);
}
}

const mapStateToProps = (state: State): ListingProps => {
const {
applications,
readyToWhitelistListings,
inChallengeCommitListings,
inChallengeRevealListings,
awaitingAppealRequestListings,
awaitingAppealJudgmentListings,
awaitingAppealChallengeListings,
appealChallengeCommitPhaseListings,
appealChallengeRevealPhaseListings,
resolveChallengeListings,
resolveAppealListings,
} = state;

return {
applications,
readyToWhitelistListings,
inChallengeCommitListings,
inChallengeRevealListings,
awaitingAppealRequestListings,
awaitingAppealJudgmentListings,
awaitingAppealChallengeListings,
appealChallengeCommitPhaseListings,
appealChallengeRevealPhaseListings,
resolveChallengeListings,
resolveAppealListings,
};
};

export default connect(mapStateToProps)(ListingsInProgress);
3 changes: 3 additions & 0 deletions packages/dapp/src/reducers/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import {
awaitingAppealChallengeListings,
appealChallengeCommitPhaseListings,
appealChallengeRevealPhaseListings,
resolveChallengeListings,
resolveAppealListings,
rejectedListings,
} from "./listings";
Expand All @@ -35,6 +36,7 @@ export interface State {
awaitingAppealChallengeListings: Set<string>;
appealChallengeCommitPhaseListings: Set<string>;
appealChallengeRevealPhaseListings: Set<string>;
resolveChallengeListings: Set<string>;
resolveAppealListings: Set<string>;
rejectedListings: Set<string>;
user: { account: any };
Expand All @@ -55,6 +57,7 @@ export default combineReducers({
awaitingAppealChallengeListings,
appealChallengeCommitPhaseListings,
appealChallengeRevealPhaseListings,
resolveChallengeListings,
resolveAppealListings,
rejectedListings,
user,
Expand Down
14 changes: 14 additions & 0 deletions packages/dapp/src/reducers/listings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import {
isListingAwaitingAppealChallenge,
isListingInAppealChallengeCommitPhase,
isInAppealChallengeRevealPhase,
canChallengeBeResolved,
canListingAppealBeResolved,
TimestampedEvent,
} from "@joincivil/core";
Expand Down Expand Up @@ -178,6 +179,19 @@ export function appealChallengeRevealPhaseListings(state: Set<string> = Set<stri
}
}

export function resolveChallengeListings(state: Set<string> = Set<string>(), action: AnyAction): Set<string> {
switch (action.type) {
case listingActions.ADD_OR_UPDATE_LISTING:
if (canChallengeBeResolved(action.data.data)) {
return state.add(action.data.address);
} else {
return state.remove(action.data.address);
}
default:
return state;
}
}

export function resolveAppealListings(state: Set<string> = Set<string>(), action: AnyAction): Set<string> {
switch (action.type) {
case listingActions.ADD_OR_UPDATE_LISTING:
Expand Down

0 comments on commit e053451

Please sign in to comment.