From 0a46d50e4bcf544cb8b6779e58fe7c8508fb7e1c Mon Sep 17 00:00:00 2001 From: zmagod Date: Wed, 18 Oct 2017 16:14:45 +0200 Subject: [PATCH] split custom types in multiple files --- .../team/components/RemoveUserModal.jsx | 5 ++-- .../scenes/SettingsPage/scenes/team/index.jsx | 17 ++++------- .../SettingsPage/scenes/teams/index.jsx | 2 +- .../SettingsPage/scenes/teams/new/index.jsx | 7 +++-- flow-typed/team_types.js | 8 +++++ flow-typed/teams_types.js | 26 +++++++++++++++++ flow-typed/types.js | 29 ++----------------- 7 files changed, 50 insertions(+), 44 deletions(-) create mode 100644 flow-typed/team_types.js create mode 100644 flow-typed/teams_types.js diff --git a/app/javascript/src/scenes/SettingsPage/scenes/team/components/RemoveUserModal.jsx b/app/javascript/src/scenes/SettingsPage/scenes/team/components/RemoveUserModal.jsx index 65622dade..275079d78 100644 --- a/app/javascript/src/scenes/SettingsPage/scenes/team/components/RemoveUserModal.jsx +++ b/app/javascript/src/scenes/SettingsPage/scenes/team/components/RemoveUserModal.jsx @@ -3,14 +3,15 @@ import React, { Component } from "react"; import { Modal, Button, Alert, Glyphicon } from "react-bootstrap"; import { FormattedMessage, FormattedHTMLMessage } from "react-intl"; +import type { Team$TeamMemeber } from "flow-typed"; import { removeUserFromTeam } from "../../../../../services/api/user_team_api"; -import type { TeamMemeber } from "../" + type Props = { showModal: boolean, hideModal: Function, updateUsersCallback: Function, - userToRemove: TeamMemeber + userToRemove: Team$TeamMemeber }; class RemoveUserModal extends Component { diff --git a/app/javascript/src/scenes/SettingsPage/scenes/team/index.jsx b/app/javascript/src/scenes/SettingsPage/scenes/team/index.jsx index e0fd4dddf..7bb017e4e 100644 --- a/app/javascript/src/scenes/SettingsPage/scenes/team/index.jsx +++ b/app/javascript/src/scenes/SettingsPage/scenes/team/index.jsx @@ -7,7 +7,7 @@ import { LinkContainer } from "react-router-bootstrap"; import { FormattedHTMLMessage, FormattedMessage } from "react-intl"; import moment from "moment"; import type { Match } from "react-router-dom"; -import type { Team } from "flow-typed"; +import type { Teams$Team, Team$TeamMemeber } from "flow-typed"; import { formatBytes } from "../../../../services/helpers/units_converter_helper"; import { getTeamDetails } from "../../../../services/api/teams_api"; @@ -19,13 +19,6 @@ import TeamsMembers from "./components/TeamsMembers"; import UpdateTeamDescriptionModal from "./components/UpdateTeamDescriptionModal"; import UpdateTeamNameModal from "./components/UpdateTeamNameModal"; -export type TeamMemeber = { - userName: string, - team_user_id: number, - teamName: string, - team_id: number -}; - const Wrapper = styled.div` background: white; box-sizing: border-box; @@ -80,8 +73,8 @@ type Props = { type State = { showDescriptionModal: boolean, showNameModal: boolean, - users: Array, - team: Team + users: Array, + team: Teams$Team }; class SettingsTeam extends Component { @@ -139,11 +132,11 @@ class SettingsTeam extends Component { (this: any).setState({ showNameModal: false }); } - updateTeamCallback(team: Team): void { + updateTeamCallback(team: Teams$Team): void { (this: any).setState({ team }); } - updateUsersCallback(users: Array): void { + updateUsersCallback(users: Array): void { (this: any).setState({ users }); } diff --git a/app/javascript/src/scenes/SettingsPage/scenes/teams/index.jsx b/app/javascript/src/scenes/SettingsPage/scenes/teams/index.jsx index 5f6dc655a..27facb24c 100644 --- a/app/javascript/src/scenes/SettingsPage/scenes/teams/index.jsx +++ b/app/javascript/src/scenes/SettingsPage/scenes/teams/index.jsx @@ -24,7 +24,7 @@ const Wrapper = styled.div` type Props = { tabState: Function, - teams: Array + teams: Array } class SettingsTeams extends Component { diff --git a/app/javascript/src/scenes/SettingsPage/scenes/teams/new/index.jsx b/app/javascript/src/scenes/SettingsPage/scenes/teams/new/index.jsx index 9fee43a86..16691c216 100644 --- a/app/javascript/src/scenes/SettingsPage/scenes/teams/new/index.jsx +++ b/app/javascript/src/scenes/SettingsPage/scenes/teams/new/index.jsx @@ -16,7 +16,7 @@ import { FormattedMessage } from "react-intl"; import update from "immutability-helper"; import styled from "styled-components"; import _ from "lodash"; -import type { NewTeam } from "flow-typed"; +import type { Teams$NewTeam } from "flow-typed"; import { createNewTeam } from "../../../../../services/api/teams_api"; import { SETTINGS_TEAMS_ROUTE, @@ -48,7 +48,8 @@ const MyFormGroupDiv = styled.div` `; type Props = { - tabState: Function + tabState: Function, + getTeamsList: Function }; type FormErrors = { @@ -57,7 +58,7 @@ type FormErrors = { }; type State = { - team: NewTeam, + team: Teams$NewTeam, formErrors: FormErrors, redirectTo: string }; diff --git a/flow-typed/team_types.js b/flow-typed/team_types.js new file mode 100644 index 000000000..0194ede18 --- /dev/null +++ b/flow-typed/team_types.js @@ -0,0 +1,8 @@ +// @flow + +export type Team$TeamMemeber = { + userName: string, + team_user_id: number, + teamName: string, + team_id: number +}; diff --git a/flow-typed/teams_types.js b/flow-typed/teams_types.js new file mode 100644 index 000000000..07ef3e9ff --- /dev/null +++ b/flow-typed/teams_types.js @@ -0,0 +1,26 @@ +// @flow + +export type Teams$TeamMember = { + actions: { current_role: string, team_user_id: number, disable: boolean }, + created_at: string, + email: string, + id: number, + name: string, + role: string, + status: string +}; + +export type Teams$NewTeam = { + name: string, + description: string +}; + + +export type Teams$Team = { + id: number, + name: string, + current_team: boolean, + role: string, + members: number, + can_be_leaved: boolean +}; diff --git a/flow-typed/types.js b/flow-typed/types.js index e1d9bcd1c..8baf221f5 100644 --- a/flow-typed/types.js +++ b/flow-typed/types.js @@ -1,4 +1,5 @@ // @flow +import type { Teams$Team } from "flow-typed"; export type User = { id: number, @@ -8,21 +9,6 @@ export type User = { avatarThumb: string }; -export type TeamMember = { - actions: { current_role: string, team_user_id: number, disable: boolean }, - created_at: string, - email: string, - id: number, - name: string, - role: string, - status: string -}; - -export type NewTeam = { - name: string, - description: string -}; - export type Alert = { message: string, type: string, @@ -36,18 +22,9 @@ export type Activity = { created_at: string }; -export type Team = { - id: number, - name: string, - current_team: boolean, - role: string, - members: number, - can_be_leaved: boolean -}; - export type State = { - current_team: Team, - all_teams: Array, + current_team: Teams$Team, + all_teams: Array, current_user: User, showLeaveTeamModal: boolean, alerts: Alert