[CORL-423] Rearrange client files and folder (#2352)

* chore: reorganize account

* chore: reorganize install

* chore: reorganize auth files

* chore: reorganize admin files

* fix: graphql naming

* chore: adapt account routing
This commit is contained in:
Vinh
2019-06-11 15:33:46 +00:00
committed by Wyatt Johnson
parent 05c8f06ed8
commit 3947b143cb
559 changed files with 1691 additions and 1755 deletions
@@ -25,7 +25,7 @@ const Router = createFarceRouter({
),
});
const EntryContainer: FunctionComponent = () => (
const App: FunctionComponent = () => (
<CoralContextConsumer>
{({ relayEnvironment }) => (
<Router resolver={new Resolver(relayEnvironment)} />
@@ -33,4 +33,4 @@ const EntryContainer: FunctionComponent = () => (
</CoralContextConsumer>
);
export default EntryContainer;
export default App;
@@ -2,7 +2,7 @@ import React, { FunctionComponent } from "react";
import { PropTypesOf } from "coral-framework/types";
import DecisionHistoryItemContainer from "../containers/DecisionHistoryItemContainer";
import DecisionHistoryItemContainer from "./DecisionHistoryItemContainer";
import DecisionList from "./DecisionList";
import Empty from "./Empty";
import Main from "./Main";
@@ -3,7 +3,7 @@ import React, { FunctionComponent } from "react";
import { BaseButton, ClickOutside, Icon, Popover } from "coral-ui/components";
import DecisionHistoryQuery from "../views/decisionHistory/queries/DecisionHistoryQuery";
import DecisionHistoryQuery from "./DecisionHistoryQuery";
import styles from "./DecisionHistoryButton.css";
@@ -5,7 +5,7 @@ import { DecisionHistoryContainer_viewer as ViewerData } from "coral-admin/__gen
import { DecisionHistoryContainerPaginationQueryVariables } from "coral-admin/__generated__/DecisionHistoryContainerPaginationQuery.graphql";
import { withPaginationContainer } from "coral-framework/lib/relay";
import DecisionHistory from "../components/DecisionHistory";
import DecisionHistory from "./DecisionHistory";
interface DecisionHistoryContainerProps {
viewer: ViewerData;
@@ -4,8 +4,8 @@ import { graphql } from "react-relay";
import { DecisionHistoryItemContainer_action as ActionData } from "coral-admin/__generated__/DecisionHistoryItemContainer_action.graphql";
import { withFragmentContainer } from "coral-framework/lib/relay";
import ApprovedComment from "../components/ApprovedComment";
import RejectedComment from "../components/RejectedComment";
import ApprovedComment from "./ApprovedComment";
import RejectedComment from "./RejectedComment";
interface DecisionHistoryItemContainerProps {
action: ActionData;
@@ -3,8 +3,8 @@ import React, { Component } from "react";
import { DecisionHistoryQuery as QueryTypes } from "coral-admin/__generated__/DecisionHistoryQuery.graphql";
import DecisionHistoryLoading from "../components/DecisionHistoryLoading";
import DecisionHistoryContainer from "../containers/DecisionHistoryContainer";
import DecisionHistoryContainer from "./DecisionHistoryContainer";
import DecisionHistoryLoading from "./DecisionHistoryLoading";
interface Props {
onClosePopover: () => void;
@@ -0,0 +1,4 @@
export {
default,
default as DecisionHistoryButton,
} from "./DecisionHistoryButton";
@@ -4,17 +4,17 @@ import { createRenderer } from "react-test-renderer/shallow";
import { PropTypesOf } from "coral-framework/types";
import App from "./App";
import Main from "./Main";
const AppN = removeFragmentRefs(App);
const MainN = removeFragmentRefs(Main);
it("renders correctly", () => {
const props: PropTypesOf<typeof AppN> = {
const props: PropTypesOf<typeof MainN> = {
viewer: {},
children: "child",
};
const renderer = createRenderer();
renderer.render(<AppN {...props} />);
renderer.render(<MainN {...props} />);
expect(renderer.getRenderOutput()).toMatchSnapshot();
});
@@ -4,12 +4,12 @@ import { PropTypesOf } from "coral-framework/types";
import { Logo } from "coral-ui/components";
import { AppBar, Begin, Divider, End } from "coral-ui/components/AppBar";
import NavigationContainer from "../containers/NavigationContainer";
import UserMenuContainer from "../containers/UserMenuContainer";
import DecisionHistoryButton from "./DecisionHistoryButton";
import { DecisionHistoryButton } from "./DecisionHistory";
import NavigationContainer from "./Navigation";
import UserMenuContainer from "./UserMenu";
import Version from "./Version";
import styles from "./App.css";
import styles from "./Main.css";
interface Props {
viewer: PropTypesOf<typeof UserMenuContainer>["viewer"] &
@@ -17,7 +17,7 @@ interface Props {
children: React.ReactNode;
}
const App: FunctionComponent<Props> = ({ children, viewer }) => (
const Main: FunctionComponent<Props> = ({ children, viewer }) => (
<div className={styles.root}>
<AppBar gutterBegin gutterEnd>
<Begin itemGutter="double">
@@ -37,4 +37,4 @@ const App: FunctionComponent<Props> = ({ children, viewer }) => (
</div>
);
export default App;
export default Main;
@@ -1,35 +1,35 @@
import React from "react";
import { AppContainerQueryResponse } from "coral-admin/__generated__/AppContainerQuery.graphql";
import { MainRouteQueryResponse } from "coral-admin/__generated__/MainRouteQuery.graphql";
import { graphql } from "coral-framework/lib/relay";
import { withRouteConfig } from "coral-framework/lib/router";
import App from "../components/App";
import Main from "./Main";
interface Props {
data: AppContainerQueryResponse | null;
data: MainRouteQueryResponse | null;
}
class AppContainer extends React.Component<Props> {
class MainRoute extends React.Component<Props> {
public render() {
return (
<App viewer={this.props.data && this.props.data.viewer}>
<Main viewer={this.props.data && this.props.data.viewer}>
{this.props.children}
</App>
</Main>
);
}
}
const enhanced = withRouteConfig<Props>({
query: graphql`
query AppContainerQuery {
query MainRouteQuery {
viewer {
...UserMenuContainer_viewer
...NavigationContainer_viewer
}
}
`,
})(AppContainer);
})(MainRoute);
export default enhanced;
@@ -8,7 +8,7 @@ import {
withSignOutMutation,
} from "coral-framework/mutations";
import Navigation from "../components/Navigation";
import Navigation from "./Navigation";
interface Props {
signOut: SignOutMutation;
@@ -0,0 +1 @@
export { default, default as NavigationContainer } from "./NavigationContainer";
@@ -7,7 +7,7 @@ import {
withSignOutMutation,
} from "coral-framework/mutations";
import UserMenu from "../components/UserMenu";
import UserMenu from "./UserMenu";
interface Props {
signOut: SignOutMutation;
@@ -0,0 +1 @@
export { default, default as UserMenuContainer } from "./UserMenuContainer";
@@ -2,7 +2,7 @@
exports[`renders correctly 1`] = `
<div
className="App-root"
className="Main-root"
>
<withPropsOnChange(AppBar)
gutterBegin={true}
@@ -12,7 +12,7 @@ exports[`renders correctly 1`] = `
itemGutter="double"
>
<div
className="App-logoContainer"
className="Main-logoContainer"
>
<withPropsOnChange(Logo) />
<Version />
+1
View File
@@ -0,0 +1 @@
export { default, default as App } from "./App";
-4
View File
@@ -1,4 +0,0 @@
export {
default as DiscoverOIDCConfigurationFetch,
} from "./DiscoverOIDCConfigurationQuery";
export { default as SearchStoryFetch } from "./SearchStoryQuery";
+2 -2
View File
@@ -2,7 +2,7 @@ import { createManaged } from "coral-framework/lib/bootstrap";
import React, { FunctionComponent } from "react";
import ReactDOM from "react-dom";
import EntryContainer from "./containers/EntryContainer";
import App from "./App";
import { initLocalState } from "./local";
import localesData from "./locales";
@@ -18,7 +18,7 @@ async function main() {
const Index: FunctionComponent = () => (
<ManagedCoralContextProvider>
<EntryContainer />
<App />
</ManagedCoralContextProvider>
);
-16
View File
@@ -1,19 +1,3 @@
export { default as SignInMutation } from "./SignInMutation";
export { default as SetRedirectPathMutation } from "./SetRedirectPathMutation";
export { default as ApproveCommentMutation } from "./ApproveCommentMutation";
export { default as RejectCommentMutation } from "./RejectCommentMutation";
export { default as UpdateSettingsMutation } from "./UpdateSettingsMutation";
export {
default as RegenerateSSOKeyMutation,
} from "./RegenerateSSOKeyMutation";
export { default as SetAuthViewMutation } from "./SetAuthViewMutation";
export { default as ClearAuthErrorMutation } from "./ClearAuthErrorMutation";
export { default as CompleteAccountMutation } from "./CompleteAccountMutation";
export { default as SetEmailMutation } from "./SetEmailMutation";
export { default as SetUsernameMutation } from "./SetUsernameMutation";
export { default as SetPasswordMutation } from "./SetPasswordMutation";
export { default as UpdateUserRoleMutation } from "./UpdateUserRoleMutation";
export { default as OpenStoryMutation } from "./OpenStoryMutation";
export { default as CloseStoryMutation } from "./CloseStoryMutation";
export { default as BanUserMutation } from "./BanUserMutation";
export { default as RemoveUserBanMutation } from "./RemoveUserBanMutation";
+44 -69
View File
@@ -2,103 +2,78 @@ import { makeRouteConfig, Redirect, Route } from "found";
import React from "react";
import { GQLUSER_ROLE } from "coral-framework/schema";
import AppContainer from "./containers/AppContainer";
import createAuthCheckContainer from "./containers/AuthCheckContainer";
import MainRoute from "./App/MainRoute";
import { Ability } from "./permissions";
import CommunityContainer from "./routes/community/containers/CommunityContainer";
import ConfigureContainer from "./routes/configure/containers/ConfigureContainer";
import ConfigureAdvancedRouteContainer from "./routes/configure/sections/advanced/containers/AdvancedConfigRouteContainer";
import ConfigureAuthRouteContainer from "./routes/configure/sections/auth/containers/AuthConfigRouteContainer";
import ConfigureGeneralRouteContainer from "./routes/configure/sections/general/containers/GeneralConfigRouteContainer";
import ConfigureModerationRouteContainer from "./routes/configure/sections/moderation/containers/ModerationConfigRouteContainer";
import ConfigureOrganizationRouteContainer from "./routes/configure/sections/organization/containers/OrganizationRouteContainer";
import ConfigureWordListRouteContainer from "./routes/configure/sections/wordList/containers/WordListRouteContainer";
import LoginContainer from "./routes/login/containers/LoginContainer";
import ModerateContainer from "./routes/moderate/containers/ModerateContainer";
import { createAuthCheckRoute } from "./routes/AuthCheck";
import CommunityRoute from "./routes/Community";
import ConfigureRoute from "./routes/Configure";
import {
PendingQueueContainer,
ReportedQueueContainer,
UnmoderatedQueueContainer,
} from "./routes/moderate/containers/QueueContainer";
import RejectedQueueContainer from "./routes/moderate/containers/RejectedQueueContainer";
import SingleModerateContainer from "./routes/moderate/containers/SingleModerateContainer";
import Stories from "./routes/stories/components/Stories";
import StoriesContainer from "./routes/stories/containers/StoriesContainer";
AdvancedConfigRoute,
AuthConfigRoute,
GeneralConfigRoute,
ModerationConfigRoute,
OrganizationConfigRoute,
WordListConfigRoute,
} from "./routes/Configure/sections";
import LoginRoute from "./routes/Login";
import ModerateRoute from "./routes/Moderate";
import {
PendingQueueRoute,
RejectedQueueRoute,
ReportedQueueRoute,
UnmoderatedQueueRoute,
} from "./routes/Moderate/Queue";
import SingleModerateRoute from "./routes/Moderate/SingleModerate";
import StoriesRoute from "./routes/Stories";
export default makeRouteConfig(
<Route path="admin">
<Route
{...createAuthCheckContainer({ role: GQLUSER_ROLE.MODERATOR })
.routeConfig}
{...createAuthCheckRoute({ role: GQLUSER_ROLE.MODERATOR }).routeConfig}
>
<Route {...AppContainer.routeConfig}>
<Route {...MainRoute.routeConfig}>
<Redirect from="/" to="/admin/moderate" />
<Route
path="moderate/comment/:commentID"
{...SingleModerateContainer.routeConfig}
{...SingleModerateRoute.routeConfig}
/>
<Route path="moderate" {...ModerateContainer.routeConfig}>
<Route path="moderate" {...ModerateRoute.routeConfig}>
<Redirect from="/" to="/admin/moderate/reported" />
<Route path="reported" {...ReportedQueueContainer.routeConfig} />
<Route
path="reported/:storyID"
{...ReportedQueueContainer.routeConfig}
/>
<Route path="pending" {...PendingQueueContainer.routeConfig} />
<Route
path="pending/:storyID"
{...PendingQueueContainer.routeConfig}
/>
<Route
path="unmoderated"
{...UnmoderatedQueueContainer.routeConfig}
/>
<Route path="reported" {...ReportedQueueRoute.routeConfig} />
<Route path="reported/:storyID" {...ReportedQueueRoute.routeConfig} />
<Route path="pending" {...PendingQueueRoute.routeConfig} />
<Route path="pending/:storyID" {...PendingQueueRoute.routeConfig} />
<Route path="unmoderated" {...UnmoderatedQueueRoute.routeConfig} />
<Route
path="unmoderated/:storyID"
{...UnmoderatedQueueContainer.routeConfig}
/>
<Route path="rejected" {...RejectedQueueContainer.routeConfig} />
<Route
path="rejected/:storyID"
{...RejectedQueueContainer.routeConfig}
{...UnmoderatedQueueRoute.routeConfig}
/>
<Route path="rejected" {...RejectedQueueRoute.routeConfig} />
<Route path="rejected/:storyID" {...RejectedQueueRoute.routeConfig} />
<Redirect from=":storyID" to="/admin/moderate/reported/:storyID" />
</Route>
<Route path="stories" {...StoriesContainer.routeConfig} />
<Route path="community" {...CommunityContainer.routeConfig} />
<Route path="stories" Component={Stories} />
<Route path="stories" {...StoriesRoute.routeConfig} />
<Route path="community" {...CommunityRoute.routeConfig} />
<Route
{...createAuthCheckContainer({
{...createAuthCheckRoute({
ability: Ability.CHANGE_CONFIGURATION,
}).routeConfig}
>
<Route path="configure" Component={ConfigureContainer}>
<Route path="configure" Component={ConfigureRoute}>
<Redirect from="/" to="/admin/configure/general" />
<Route
path="general"
{...ConfigureGeneralRouteContainer.routeConfig}
/>
<Route path="general" {...GeneralConfigRoute.routeConfig} />
<Route
path="organization"
{...ConfigureOrganizationRouteContainer.routeConfig}
/>
<Route
path="moderation"
{...ConfigureModerationRouteContainer.routeConfig}
/>
<Route
path="wordList"
{...ConfigureWordListRouteContainer.routeConfig}
/>
<Route path="auth" {...ConfigureAuthRouteContainer.routeConfig} />
<Route
path="advanced"
{...ConfigureAdvancedRouteContainer.routeConfig}
{...OrganizationConfigRoute.routeConfig}
/>
<Route path="moderation" {...ModerationConfigRoute.routeConfig} />
<Route path="wordList" {...WordListConfigRoute.routeConfig} />
<Route path="auth" {...AuthConfigRoute.routeConfig} />
<Route path="advanced" {...AdvancedConfigRoute.routeConfig} />
</Route>
</Route>
</Route>
</Route>
<Route path="login" {...LoginContainer.routeConfig} />
<Route path="login" {...LoginRoute.routeConfig} />
</Route>
);
@@ -1,20 +1,21 @@
import { Match, Router, withRouter } from "found";
import React from "react";
import { AuthCheckContainerQueryResponse } from "coral-admin/__generated__/AuthCheckContainerQuery.graphql";
import { AuthCheckRouteQueryResponse } from "coral-admin/__generated__/AuthCheckRouteQuery.graphql";
import { SetRedirectPathMutation } from "coral-admin/mutations";
import { AbilityType, can } from "coral-admin/permissions";
import RestrictedContainer from "coral-admin/views/restricted/containers/RestrictedContainer";
import { roleIsAtLeast } from "coral-framework/helpers";
import { graphql, MutationProp, withMutation } from "coral-framework/lib/relay";
import { withRouteConfig } from "coral-framework/lib/router";
import { GQLUSER_ROLE } from "coral-framework/schema";
import RestrictedContainer from "./RestrictedContainer";
interface Props {
match: Match;
router: Router;
setRedirectPath: MutationProp<typeof SetRedirectPathMutation>;
data: AuthCheckContainerQueryResponse;
data: AuthCheckRouteQueryResponse;
}
type CheckParams =
@@ -27,8 +28,8 @@ type CheckParams =
ability: AbilityType;
};
function createAuthCheckContainer(check: CheckParams) {
class AuthCheckContainer extends React.Component<Props> {
function createAuthCheckRoute(check: CheckParams) {
class AuthCheckRoute extends React.Component<Props> {
private wasLoggedIn = false;
constructor(props: Props) {
super(props);
@@ -96,7 +97,7 @@ function createAuthCheckContainer(check: CheckParams) {
const enhanced = withRouteConfig<Props>({
query: graphql`
query AuthCheckContainerQuery {
query AuthCheckRouteQuery {
viewer {
...RestrictedContainer_viewer
username
@@ -121,8 +122,8 @@ function createAuthCheckContainer(check: CheckParams) {
}
}
`,
})(withRouter(withMutation(SetRedirectPathMutation)(AuthCheckContainer)));
})(withRouter(withMutation(SetRedirectPathMutation)(AuthCheckRoute)));
return enhanced;
}
export default createAuthCheckContainer;
export default createAuthCheckRoute;

Some files were not shown because too many files have changed in this diff Show More