From 7a77bfc248d3ad8e95b0bec162a0613da999a261 Mon Sep 17 00:00:00 2001 From: liyasthomas Date: Thu, 28 Oct 2021 20:29:49 +0530 Subject: [PATCH] feat: subscriptions on edit team modal --- .../hoppscotch-app/components/teams/Edit.vue | 447 ++++++++++-------- .../components/teams/Invite.vue | 12 +- .../hoppscotch-app/components/teams/index.vue | 11 +- .../backend/gql/queries/GetTeam.graphql | 3 +- .../gql/subscriptions/TeamMemberAdded.graphql | 5 + .../subscriptions/TeamMemberRemoved.graphql | 3 + .../subscriptions/TeamMemberUpdated.graphql | 5 + .../helpers/teams/TeamMemberAdapter.ts | 2 +- packages/hoppscotch-app/locales/en.json | 3 +- 9 files changed, 279 insertions(+), 212 deletions(-) create mode 100644 packages/hoppscotch-app/helpers/backend/gql/subscriptions/TeamMemberAdded.graphql create mode 100644 packages/hoppscotch-app/helpers/backend/gql/subscriptions/TeamMemberRemoved.graphql create mode 100644 packages/hoppscotch-app/helpers/backend/gql/subscriptions/TeamMemberUpdated.graphql diff --git a/packages/hoppscotch-app/components/teams/Edit.vue b/packages/hoppscotch-app/components/teams/Edit.vue index d4146ff17..e4fd4032d 100644 --- a/packages/hoppscotch-app/components/teams/Edit.vue +++ b/packages/hoppscotch-app/components/teams/Edit.vue @@ -34,75 +34,23 @@ /> -
+
+ + {{ $t("state.loading") }} +
+
- - - - - - - - - -
- -
-
-
+
+
+ + + + + + + + + +
+ +
+
+
+
+
+ help_outline + {{ $t("error.something_went_wrong") }}
@@ -140,138 +163,174 @@ - diff --git a/packages/hoppscotch-app/components/teams/Invite.vue b/packages/hoppscotch-app/components/teams/Invite.vue index 68f3f5a78..0354c67e3 100644 --- a/packages/hoppscotch-app/components/teams/Invite.vue +++ b/packages/hoppscotch-app/components/teams/Invite.vue @@ -326,7 +326,7 @@ const newInviteeOptions = ref(null) const props = defineProps({ show: Boolean, - editingteamID: { type: String, default: null }, + editingTeamID: { type: String, default: null }, }) const emit = defineEmits<{ @@ -340,17 +340,17 @@ const pendingInvites = useGQLQuery< >({ query: GetPendingInvitesDocument, variables: reactive({ - teamID: props.editingteamID, + teamID: props.editingTeamID, }), defer: true, }) watch( - () => props.editingteamID, + () => props.editingTeamID, () => { - if (props.editingteamID) { + if (props.editingTeamID) { pendingInvites.execute({ - teamID: props.editingteamID, + teamID: props.editingTeamID, }) } } @@ -420,7 +420,7 @@ const sendInvites = async () => { ), O.map( A.map((invitee) => - createTeamInvitation(invitee.key, invitee.value, props.editingteamID) + createTeamInvitation(invitee.key, invitee.value, props.editingTeamID) ) ) ) diff --git a/packages/hoppscotch-app/components/teams/index.vue b/packages/hoppscotch-app/components/teams/index.vue index 3cc17d78b..3fb8bfcfd 100644 --- a/packages/hoppscotch-app/components/teams/index.vue +++ b/packages/hoppscotch-app/components/teams/index.vue @@ -66,7 +66,7 @@ :team="myTeams.data.right.myTeams[0]" :show="showModalEdit" :editing-team="editingTeam" - :editingteam-i-d="editingTeamID" + :editing-team-i-d="editingTeamID" @hide-modal="displayModalEdit(false)" @invite-team="inviteTeam(editingTeam, editingTeamID)" /> @@ -79,7 +79,7 @@ :team="myTeams.data.right.myTeams[0]" :show="showModalInvite" :editing-team="editingTeam" - :editingteam-i-d="editingTeamID" + :editing-team-i-d="editingTeamID" @hide-modal="displayModalInvite(false)" /> @@ -124,8 +124,6 @@ const displayModalAdd = (shouldDisplay: boolean) => { const displayModalEdit = (shouldDisplay: boolean) => { showModalEdit.value = shouldDisplay - - if (!shouldDisplay) resetSelectedData() } const displayModalInvite = (shouldDisplay: boolean) => { @@ -143,9 +141,4 @@ const inviteTeam = (team: any, teamID: any) => { editingTeamID.value = teamID displayModalInvite(true) } - -const resetSelectedData = () => { - editingTeam.value = undefined - editingTeamID.value = undefined -} diff --git a/packages/hoppscotch-app/helpers/backend/gql/queries/GetTeam.graphql b/packages/hoppscotch-app/helpers/backend/gql/queries/GetTeam.graphql index 4a45ec07c..852c6cd22 100644 --- a/packages/hoppscotch-app/helpers/backend/gql/queries/GetTeam.graphql +++ b/packages/hoppscotch-app/helpers/backend/gql/queries/GetTeam.graphql @@ -6,8 +6,9 @@ query GetTeam($teamID: ID!) { membershipID user { uid + email } role } } -} \ No newline at end of file +} diff --git a/packages/hoppscotch-app/helpers/backend/gql/subscriptions/TeamMemberAdded.graphql b/packages/hoppscotch-app/helpers/backend/gql/subscriptions/TeamMemberAdded.graphql new file mode 100644 index 000000000..dd15795e0 --- /dev/null +++ b/packages/hoppscotch-app/helpers/backend/gql/subscriptions/TeamMemberAdded.graphql @@ -0,0 +1,5 @@ +subscription TeamMemberAdded($teamID: ID!) { + teamMemberAdded(teamID: $teamID) { + membershipID + } +} diff --git a/packages/hoppscotch-app/helpers/backend/gql/subscriptions/TeamMemberRemoved.graphql b/packages/hoppscotch-app/helpers/backend/gql/subscriptions/TeamMemberRemoved.graphql new file mode 100644 index 000000000..36ecb406f --- /dev/null +++ b/packages/hoppscotch-app/helpers/backend/gql/subscriptions/TeamMemberRemoved.graphql @@ -0,0 +1,3 @@ +subscription TeamMemberRemoved($teamID: ID!) { + teamMemberRemoved(teamID: $teamID) +} diff --git a/packages/hoppscotch-app/helpers/backend/gql/subscriptions/TeamMemberUpdated.graphql b/packages/hoppscotch-app/helpers/backend/gql/subscriptions/TeamMemberUpdated.graphql new file mode 100644 index 000000000..bed609224 --- /dev/null +++ b/packages/hoppscotch-app/helpers/backend/gql/subscriptions/TeamMemberUpdated.graphql @@ -0,0 +1,5 @@ +subscription TeamMemberUpdated($teamID: ID!) { + teamMemberUpdated(teamID: $teamID) { + membershipID + } +} diff --git a/packages/hoppscotch-app/helpers/teams/TeamMemberAdapter.ts b/packages/hoppscotch-app/helpers/teams/TeamMemberAdapter.ts index 77ca87230..ec35118b7 100644 --- a/packages/hoppscotch-app/helpers/teams/TeamMemberAdapter.ts +++ b/packages/hoppscotch-app/helpers/teams/TeamMemberAdapter.ts @@ -4,7 +4,7 @@ import cloneDeep from "lodash/cloneDeep" import * as Apollo from "@apollo/client/core" import { apolloClient } from "~/helpers/apollo" -interface TeamsTeamMember { +export interface TeamsTeamMember { membershipID: string user: { uid: string diff --git a/packages/hoppscotch-app/locales/en.json b/packages/hoppscotch-app/locales/en.json index 45432d870..478c17499 100644 --- a/packages/hoppscotch-app/locales/en.json +++ b/packages/hoppscotch-app/locales/en.json @@ -485,7 +485,6 @@ "invalid_invite_link_description": "The link you followed is invalid. Contact your team owner.", "invalid_member_permission": "Please provide a valid permission to the team member", "invite": "Invite", - "logout_and_try_again": "Logout and sign in with another account", "invite_more": "Invite more", "invite_tooltip": "Invite people to this workspace", "invited_to_team": "{owner} invited you to join {team}", @@ -497,12 +496,14 @@ "left": "You left the team", "login_to_continue": "Login to continue", "login_to_continue_description": "You need to be logged in to join a team.", + "logout_and_try_again": "Logout and sign in with another account", "member_has_invite": "This email ID already has an invite. Contact your team owner.", "member_not_found": "Member not found. Contact your team owner.", "member_removed": "User removed", "member_role_updated": "User roles updated", "members": "Members", "name_length_insufficient": "Team name should be atleast 6 characters long", + "name_updated": "Team name updated", "new": "New Team", "new_created": "New team created", "new_name": "My New Team",