@os-team/profile 1.2.0 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/@types/emotion.d.js +1 -0
- package/dist/@types/i18next.d.js +1 -0
- package/dist/@types/relay.d.js +0 -0
- package/dist/{types/components → components}/profile/ProfileButton.d.ts +1 -1
- package/dist/components/profile/ProfileButton.d.ts.map +1 -0
- package/dist/components/profile/ProfileButton.js +9 -0
- package/dist/components/profile/ProfileConfigContext.d.ts.map +1 -0
- package/dist/{esm/components → components}/profile/ProfileConfigContext.js +1 -2
- package/dist/components/profile/ProfileContext.d.ts.map +1 -0
- package/dist/{esm/components → components}/profile/ProfileContext.js +1 -2
- package/dist/{types/components → components}/profile/ProfileDrawer.d.ts +2 -2
- package/dist/components/profile/ProfileDrawer.d.ts.map +1 -0
- package/dist/components/profile/ProfileDrawer.js +28 -0
- package/dist/{types/components → components}/profile/ProfileDrawerContent.d.ts +7 -0
- package/dist/components/profile/ProfileDrawerContent.d.ts.map +1 -0
- package/dist/{esm/components → components}/profile/ProfileDrawerContent.js +66 -41
- package/dist/{types/components → components}/profile/ProfileNavigationItem.d.ts +1 -1
- package/dist/components/profile/ProfileNavigationItem.d.ts.map +1 -0
- package/dist/components/profile/ProfileNavigationItem.js +28 -0
- package/dist/components/profile/ProfileUpdateNameModal.d.ts.map +1 -0
- package/dist/{esm/components → components}/profile/ProfileUpdateNameModal.js +38 -31
- package/dist/components/profile/ProfileUpdatePasswordModal.d.ts.map +1 -0
- package/dist/{esm/components → components}/profile/ProfileUpdatePasswordModal.js +40 -33
- package/dist/components/profile/ProtectedWrapper.d.ts.map +1 -0
- package/dist/{esm/components → components}/profile/ProtectedWrapper.js +19 -14
- package/dist/{types/components → components}/profile/UserAvatar.d.ts +1 -1
- package/dist/components/profile/UserAvatar.d.ts.map +1 -0
- package/dist/{esm/components → components}/profile/UserAvatar.js +7 -6
- package/dist/{types/components → components}/profile/UserAvatarAddon.d.ts +1 -1
- package/dist/components/profile/UserAvatarAddon.d.ts.map +1 -0
- package/dist/components/profile/UserAvatarAddon.js +50 -0
- package/dist/{types/components → components}/profile/__generated__/ProfileDrawerContentSignOutMutation.graphql.d.ts +5 -0
- package/dist/components/profile/__generated__/ProfileDrawerContentSignOutMutation.graphql.d.ts.map +1 -0
- package/dist/{esm/components → components}/profile/__generated__/ProfileDrawerContentSignOutMutation.graphql.js +2 -3
- package/dist/{types/components → components}/profile/__generated__/ProfileDrawerContentUpdateAvatarMutation.graphql.d.ts +5 -0
- package/dist/components/profile/__generated__/ProfileDrawerContentUpdateAvatarMutation.graphql.d.ts.map +1 -0
- package/dist/{esm/components → components}/profile/__generated__/ProfileDrawerContentUpdateAvatarMutation.graphql.js +2 -3
- package/dist/{types/components → components}/profile/__generated__/ProfileUpdateNameModalMutation.graphql.d.ts +5 -0
- package/dist/components/profile/__generated__/ProfileUpdateNameModalMutation.graphql.d.ts.map +1 -0
- package/dist/{esm/components → components}/profile/__generated__/ProfileUpdateNameModalMutation.graphql.js +2 -3
- package/dist/{types/components → components}/profile/__generated__/ProfileUpdatePasswordModalMutation.graphql.d.ts +5 -0
- package/dist/components/profile/__generated__/ProfileUpdatePasswordModalMutation.graphql.d.ts.map +1 -0
- package/dist/{esm/components → components}/profile/__generated__/ProfileUpdatePasswordModalMutation.graphql.js +2 -3
- package/dist/{types/components → components}/profile/__generated__/ProtectedWrapperQuery.graphql.d.ts +5 -0
- package/dist/components/profile/__generated__/ProtectedWrapperQuery.graphql.d.ts.map +1 -0
- package/dist/{esm/components → components}/profile/__generated__/ProtectedWrapperQuery.graphql.js +2 -3
- package/dist/{types/components → components}/session/SessionDrawer.d.ts +1 -1
- package/dist/components/session/SessionDrawer.d.ts.map +1 -0
- package/dist/components/session/SessionDrawer.js +45 -0
- package/dist/components/session/SessionDrawerContent.d.ts.map +1 -0
- package/dist/{esm/components → components}/session/SessionDrawerContent.js +12 -10
- package/dist/{types/components → components}/session/SessionList.d.ts +5 -5
- package/dist/components/session/SessionList.d.ts.map +1 -0
- package/dist/{esm/components → components}/session/SessionList.js +33 -17
- package/dist/{types/components → components}/session/SessionListItem.d.ts +9 -9
- package/dist/components/session/SessionListItem.d.ts.map +1 -0
- package/dist/{esm/components → components}/session/SessionListItem.js +37 -19
- package/dist/components/session/SessionListSkeleton.d.ts.map +1 -0
- package/dist/components/session/SessionListSkeleton.js +43 -0
- package/dist/{types/components → components}/session/__generated__/SessionDrawerContentQuery.graphql.d.ts +5 -0
- package/dist/components/session/__generated__/SessionDrawerContentQuery.graphql.d.ts.map +1 -0
- package/dist/{esm/components → components}/session/__generated__/SessionDrawerContentQuery.graphql.js +2 -3
- package/dist/{types/components → components}/session/__generated__/SessionListDestroyAllOtherSessionsMutation.graphql.d.ts +5 -0
- package/dist/components/session/__generated__/SessionListDestroyAllOtherSessionsMutation.graphql.d.ts.map +1 -0
- package/dist/{esm/components → components}/session/__generated__/SessionListDestroyAllOtherSessionsMutation.graphql.js +2 -3
- package/dist/{types/components → components}/session/__generated__/SessionListItemDestroySessionMutation.graphql.d.ts +5 -0
- package/dist/components/session/__generated__/SessionListItemDestroySessionMutation.graphql.d.ts.map +1 -0
- package/dist/{esm/components → components}/session/__generated__/SessionListItemDestroySessionMutation.graphql.js +2 -3
- package/dist/{types/components → components}/session/__generated__/SessionListItem_session.graphql.d.ts +5 -0
- package/dist/components/session/__generated__/SessionListItem_session.graphql.d.ts.map +1 -0
- package/dist/{esm/components → components}/session/__generated__/SessionListItem_session.graphql.js +2 -3
- package/dist/{types/components → components}/session/__generated__/SessionListRefetchQuery.graphql.d.ts +5 -0
- package/dist/components/session/__generated__/SessionListRefetchQuery.graphql.d.ts.map +1 -0
- package/dist/{esm/components → components}/session/__generated__/SessionListRefetchQuery.graphql.js +2 -3
- package/dist/{types/components → components}/session/__generated__/SessionList_sessions.graphql.d.ts +5 -0
- package/dist/components/session/__generated__/SessionList_sessions.graphql.d.ts.map +1 -0
- package/dist/{esm/components → components}/session/__generated__/SessionList_sessions.graphql.js +2 -3
- package/dist/{types/components → components}/session/formatDate.d.ts +1 -1
- package/dist/components/session/formatDate.d.ts.map +1 -0
- package/dist/{esm/components → components}/session/formatDate.js +1 -2
- package/dist/components/session/getLastSeen.d.ts +3 -0
- package/dist/components/session/getLastSeen.d.ts.map +1 -0
- package/dist/{esm/components → components}/session/getLastSeen.js +1 -2
- package/dist/{types/components → components}/shared/ButtonUpdate.d.ts +1 -1
- package/dist/components/shared/ButtonUpdate.d.ts.map +1 -0
- package/dist/{esm/components → components}/shared/ButtonUpdate.js +6 -3
- package/dist/components/shared/ErrorResult.d.ts.map +1 -0
- package/dist/{esm/components → components}/shared/ErrorResult.js +4 -4
- package/dist/components/shared/FormError.d.ts.map +1 -0
- package/dist/{esm/components → components}/shared/FormError.js +6 -5
- package/dist/components/shared/MainLoader.d.ts.map +1 -0
- package/dist/{esm/components → components}/shared/MainLoader.js +5 -3
- package/dist/{types/components → components}/shared/icons/AndroidIcon.d.ts +1 -1
- package/dist/components/shared/icons/AndroidIcon.d.ts.map +1 -0
- package/dist/components/shared/icons/AndroidIcon.js +12 -0
- package/dist/{types/components → components}/shared/icons/AppleIcon.d.ts +1 -1
- package/dist/components/shared/icons/AppleIcon.d.ts.map +1 -0
- package/dist/components/shared/icons/AppleIcon.js +12 -0
- package/dist/{types/components → components}/shared/icons/BrowserIcon.d.ts +1 -1
- package/dist/components/shared/icons/BrowserIcon.d.ts.map +1 -0
- package/dist/components/shared/icons/BrowserIcon.js +12 -0
- package/dist/{types/components → components}/shared/icons/ProfileIcon.d.ts +1 -1
- package/dist/components/shared/icons/ProfileIcon.d.ts.map +1 -0
- package/dist/components/shared/icons/ProfileIcon.js +12 -0
- package/dist/{types/components → components}/shared/icons/UnknownDeviceIcon.d.ts +1 -1
- package/dist/components/shared/icons/UnknownDeviceIcon.d.ts.map +1 -0
- package/dist/components/shared/icons/UnknownDeviceIcon.js +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/utils/getError.d.ts.map +1 -0
- package/dist/{esm/utils → utils}/getError.js +1 -2
- package/dist/utils/getUserFullName.d.ts.map +1 -0
- package/dist/{esm/utils → utils}/getUserFullName.js +1 -2
- package/dist/{types/utils → utils}/handleFormErrors.d.ts +1 -1
- package/dist/utils/handleFormErrors.d.ts.map +1 -0
- package/dist/{esm/utils → utils}/handleFormErrors.js +1 -2
- package/package.json +55 -61
- package/src/@types/react-app-env.d.ts +3 -0
- package/src/App.tsx +42 -0
- package/src/AppRouter.tsx +12 -0
- package/src/components/ErrorResult.tsx +23 -0
- package/src/components/Layout.tsx +70 -0
- package/src/components/MainLoader.tsx +22 -0
- package/src/components/icons/HomeIcon.tsx +12 -0
- package/src/i18next.ts +34 -0
- package/src/index.tsx +6 -0
- package/src/lib/@types/emotion.d.ts +7 -0
- package/src/lib/@types/i18next.d.ts +12 -0
- package/src/lib/@types/relay.d.ts +3 -0
- package/src/lib/components/profile/ProfileButton.tsx +8 -0
- package/src/lib/components/profile/ProfileConfigContext.ts +16 -0
- package/src/lib/components/profile/ProfileContext.ts +20 -0
- package/src/lib/components/profile/ProfileDrawer.tsx +31 -0
- package/src/lib/components/profile/ProfileDrawerContent.tsx +276 -0
- package/src/lib/components/profile/ProfileNavigationItem.tsx +36 -0
- package/src/lib/components/profile/ProfileUpdateNameModal.tsx +117 -0
- package/src/lib/components/profile/ProfileUpdatePasswordModal.tsx +129 -0
- package/src/lib/components/profile/ProtectedWrapper.tsx +81 -0
- package/src/lib/components/profile/UserAvatar.tsx +23 -0
- package/src/lib/components/profile/UserAvatarAddon.tsx +62 -0
- package/src/lib/components/profile/__generated__/ProfileDrawerContentSignOutMutation.graphql.ts +74 -0
- package/src/lib/components/profile/__generated__/ProfileDrawerContentUpdateAvatarMutation.graphql.ts +100 -0
- package/src/lib/components/profile/__generated__/ProfileUpdateNameModalMutation.graphql.ts +124 -0
- package/src/lib/components/profile/__generated__/ProfileUpdatePasswordModalMutation.graphql.ts +93 -0
- package/src/lib/components/profile/__generated__/ProtectedWrapperQuery.graphql.ts +106 -0
- package/src/lib/components/session/SessionDrawer.tsx +50 -0
- package/src/lib/components/session/SessionDrawerContent.tsx +34 -0
- package/src/lib/components/session/SessionList.tsx +138 -0
- package/src/lib/components/session/SessionListItem.tsx +318 -0
- package/src/lib/components/session/SessionListSkeleton.tsx +48 -0
- package/src/lib/components/session/__generated__/SessionDrawerContentQuery.graphql.ts +181 -0
- package/src/lib/components/session/__generated__/SessionListDestroyAllOtherSessionsMutation.graphql.ts +74 -0
- package/src/lib/components/session/__generated__/SessionListItemDestroySessionMutation.graphql.ts +92 -0
- package/src/lib/components/session/__generated__/SessionListItem_session.graphql.ts +154 -0
- package/src/lib/components/session/__generated__/SessionListRefetchQuery.graphql.ts +181 -0
- package/src/lib/components/session/__generated__/SessionList_sessions.graphql.ts +83 -0
- package/src/lib/components/session/formatDate.ts +21 -0
- package/{dist/cjs/components/session/getLastSeen.js → src/lib/components/session/getLastSeen.ts} +9 -9
- package/src/lib/components/shared/ButtonUpdate.tsx +10 -0
- package/src/lib/components/shared/ErrorResult.tsx +28 -0
- package/src/lib/components/shared/FormError.tsx +11 -0
- package/src/lib/components/shared/MainLoader.tsx +22 -0
- package/src/lib/components/shared/icons/AndroidIcon.tsx +12 -0
- package/src/lib/components/shared/icons/AppleIcon.tsx +12 -0
- package/src/lib/components/shared/icons/BrowserIcon.tsx +12 -0
- package/src/lib/components/shared/icons/ProfileIcon.tsx +12 -0
- package/src/lib/components/shared/icons/UnknownDeviceIcon.tsx +14 -0
- package/{dist/esm/index.js → src/lib/index.ts} +1 -1
- package/src/lib/utils/getError.ts +101 -0
- package/src/lib/utils/getUserFullName.ts +14 -0
- package/src/lib/utils/handleFormErrors.ts +16 -0
- package/src/pages/HomePage.tsx +11 -0
- package/src/schema.graphql +2494 -0
- package/src/utils/createRelayEnvironment.ts +22 -0
- package/src/utils/getError.ts +101 -0
- package/dist/cjs/@types/emotion.d.js +0 -4
- package/dist/cjs/@types/emotion.d.js.map +0 -1
- package/dist/cjs/@types/i18next.d.js +0 -4
- package/dist/cjs/@types/i18next.d.js.map +0 -1
- package/dist/cjs/components/profile/ProfileButton.js +0 -16
- package/dist/cjs/components/profile/ProfileButton.js.map +0 -1
- package/dist/cjs/components/profile/ProfileConfigContext.js +0 -17
- package/dist/cjs/components/profile/ProfileConfigContext.js.map +0 -1
- package/dist/cjs/components/profile/ProfileContext.js +0 -18
- package/dist/cjs/components/profile/ProfileContext.js.map +0 -1
- package/dist/cjs/components/profile/ProfileDrawer.js +0 -35
- package/dist/cjs/components/profile/ProfileDrawer.js.map +0 -1
- package/dist/cjs/components/profile/ProfileDrawerContent.js +0 -167
- package/dist/cjs/components/profile/ProfileDrawerContent.js.map +0 -1
- package/dist/cjs/components/profile/ProfileNavigationItem.js +0 -35
- package/dist/cjs/components/profile/ProfileNavigationItem.js.map +0 -1
- package/dist/cjs/components/profile/ProfileUpdateNameModal.js +0 -106
- package/dist/cjs/components/profile/ProfileUpdateNameModal.js.map +0 -1
- package/dist/cjs/components/profile/ProfileUpdatePasswordModal.js +0 -106
- package/dist/cjs/components/profile/ProfileUpdatePasswordModal.js.map +0 -1
- package/dist/cjs/components/profile/ProtectedWrapper.js +0 -54
- package/dist/cjs/components/profile/ProtectedWrapper.js.map +0 -1
- package/dist/cjs/components/profile/UserAvatar.js +0 -42
- package/dist/cjs/components/profile/UserAvatar.js.map +0 -1
- package/dist/cjs/components/profile/UserAvatarAddon.js +0 -41
- package/dist/cjs/components/profile/UserAvatarAddon.js.map +0 -1
- package/dist/cjs/components/profile/__generated__/ProfileDrawerContentSignOutMutation.graphql.js +0 -63
- package/dist/cjs/components/profile/__generated__/ProfileDrawerContentSignOutMutation.graphql.js.map +0 -1
- package/dist/cjs/components/profile/__generated__/ProfileDrawerContentUpdateAvatarMutation.graphql.js +0 -78
- package/dist/cjs/components/profile/__generated__/ProfileDrawerContentUpdateAvatarMutation.graphql.js.map +0 -1
- package/dist/cjs/components/profile/__generated__/ProfileUpdateNameModalMutation.graphql.js +0 -95
- package/dist/cjs/components/profile/__generated__/ProfileUpdateNameModalMutation.graphql.js.map +0 -1
- package/dist/cjs/components/profile/__generated__/ProfileUpdatePasswordModalMutation.graphql.js +0 -72
- package/dist/cjs/components/profile/__generated__/ProfileUpdatePasswordModalMutation.graphql.js.map +0 -1
- package/dist/cjs/components/profile/__generated__/ProtectedWrapperQuery.graphql.js +0 -87
- package/dist/cjs/components/profile/__generated__/ProtectedWrapperQuery.graphql.js.map +0 -1
- package/dist/cjs/components/session/SessionDrawer.js +0 -46
- package/dist/cjs/components/session/SessionDrawer.js.map +0 -1
- package/dist/cjs/components/session/SessionDrawerContent.js +0 -39
- package/dist/cjs/components/session/SessionDrawerContent.js.map +0 -1
- package/dist/cjs/components/session/SessionList.js +0 -73
- package/dist/cjs/components/session/SessionList.js.map +0 -1
- package/dist/cjs/components/session/SessionListItem.js +0 -150
- package/dist/cjs/components/session/SessionListItem.js.map +0 -1
- package/dist/cjs/components/session/SessionListSkeleton.js +0 -31
- package/dist/cjs/components/session/SessionListSkeleton.js.map +0 -1
- package/dist/cjs/components/session/__generated__/SessionDrawerContentQuery.graphql.js +0 -154
- package/dist/cjs/components/session/__generated__/SessionDrawerContentQuery.graphql.js.map +0 -1
- package/dist/cjs/components/session/__generated__/SessionListDestroyAllOtherSessionsMutation.graphql.js +0 -63
- package/dist/cjs/components/session/__generated__/SessionListDestroyAllOtherSessionsMutation.graphql.js.map +0 -1
- package/dist/cjs/components/session/__generated__/SessionListItemDestroySessionMutation.graphql.js +0 -72
- package/dist/cjs/components/session/__generated__/SessionListItemDestroySessionMutation.graphql.js.map +0 -1
- package/dist/cjs/components/session/__generated__/SessionListItem_session.graphql.js +0 -118
- package/dist/cjs/components/session/__generated__/SessionListItem_session.graphql.js.map +0 -1
- package/dist/cjs/components/session/__generated__/SessionListRefetchQuery.graphql.js +0 -154
- package/dist/cjs/components/session/__generated__/SessionListRefetchQuery.graphql.js.map +0 -1
- package/dist/cjs/components/session/__generated__/SessionList_sessions.graphql.js +0 -65
- package/dist/cjs/components/session/__generated__/SessionList_sessions.graphql.js.map +0 -1
- package/dist/cjs/components/session/formatDate.js +0 -19
- package/dist/cjs/components/session/formatDate.js.map +0 -1
- package/dist/cjs/components/session/getLastSeen.js.map +0 -1
- package/dist/cjs/components/shared/ButtonUpdate.js +0 -18
- package/dist/cjs/components/shared/ButtonUpdate.js.map +0 -1
- package/dist/cjs/components/shared/ErrorResult.js +0 -31
- package/dist/cjs/components/shared/ErrorResult.js.map +0 -1
- package/dist/cjs/components/shared/FormError.js +0 -21
- package/dist/cjs/components/shared/FormError.js.map +0 -1
- package/dist/cjs/components/shared/MainLoader.js +0 -17
- package/dist/cjs/components/shared/MainLoader.js.map +0 -1
- package/dist/cjs/components/shared/icons/AndroidIcon.js +0 -18
- package/dist/cjs/components/shared/icons/AndroidIcon.js.map +0 -1
- package/dist/cjs/components/shared/icons/AppleIcon.js +0 -18
- package/dist/cjs/components/shared/icons/AppleIcon.js.map +0 -1
- package/dist/cjs/components/shared/icons/BrowserIcon.js +0 -18
- package/dist/cjs/components/shared/icons/BrowserIcon.js.map +0 -1
- package/dist/cjs/components/shared/icons/ProfileIcon.js +0 -18
- package/dist/cjs/components/shared/icons/ProfileIcon.js.map +0 -1
- package/dist/cjs/components/shared/icons/UnknownDeviceIcon.js +0 -18
- package/dist/cjs/components/shared/icons/UnknownDeviceIcon.js.map +0 -1
- package/dist/cjs/index.js +0 -142
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/utils/getError.js +0 -59
- package/dist/cjs/utils/getError.js.map +0 -1
- package/dist/cjs/utils/getUserFullName.js +0 -19
- package/dist/cjs/utils/getUserFullName.js.map +0 -1
- package/dist/cjs/utils/handleFormErrors.js +0 -25
- package/dist/cjs/utils/handleFormErrors.js.map +0 -1
- package/dist/esm/@types/emotion.d.js +0 -2
- package/dist/esm/@types/emotion.d.js.map +0 -1
- package/dist/esm/@types/i18next.d.js +0 -2
- package/dist/esm/@types/i18next.d.js.map +0 -1
- package/dist/esm/components/profile/ProfileButton.js +0 -9
- package/dist/esm/components/profile/ProfileButton.js.map +0 -1
- package/dist/esm/components/profile/ProfileConfigContext.js.map +0 -1
- package/dist/esm/components/profile/ProfileContext.js.map +0 -1
- package/dist/esm/components/profile/ProfileDrawer.js +0 -25
- package/dist/esm/components/profile/ProfileDrawer.js.map +0 -1
- package/dist/esm/components/profile/ProfileDrawerContent.js.map +0 -1
- package/dist/esm/components/profile/ProfileNavigationItem.js +0 -27
- package/dist/esm/components/profile/ProfileNavigationItem.js.map +0 -1
- package/dist/esm/components/profile/ProfileUpdateNameModal.js.map +0 -1
- package/dist/esm/components/profile/ProfileUpdatePasswordModal.js.map +0 -1
- package/dist/esm/components/profile/ProtectedWrapper.js.map +0 -1
- package/dist/esm/components/profile/UserAvatar.js.map +0 -1
- package/dist/esm/components/profile/UserAvatarAddon.js +0 -47
- package/dist/esm/components/profile/UserAvatarAddon.js.map +0 -1
- package/dist/esm/components/profile/__generated__/ProfileDrawerContentSignOutMutation.graphql.js.map +0 -1
- package/dist/esm/components/profile/__generated__/ProfileDrawerContentUpdateAvatarMutation.graphql.js.map +0 -1
- package/dist/esm/components/profile/__generated__/ProfileUpdateNameModalMutation.graphql.js.map +0 -1
- package/dist/esm/components/profile/__generated__/ProfileUpdatePasswordModalMutation.graphql.js.map +0 -1
- package/dist/esm/components/profile/__generated__/ProtectedWrapperQuery.graphql.js.map +0 -1
- package/dist/esm/components/session/SessionDrawer.js +0 -39
- package/dist/esm/components/session/SessionDrawer.js.map +0 -1
- package/dist/esm/components/session/SessionDrawerContent.js.map +0 -1
- package/dist/esm/components/session/SessionList.js.map +0 -1
- package/dist/esm/components/session/SessionListItem.js.map +0 -1
- package/dist/esm/components/session/SessionListSkeleton.js +0 -31
- package/dist/esm/components/session/SessionListSkeleton.js.map +0 -1
- package/dist/esm/components/session/__generated__/SessionDrawerContentQuery.graphql.js.map +0 -1
- package/dist/esm/components/session/__generated__/SessionListDestroyAllOtherSessionsMutation.graphql.js.map +0 -1
- package/dist/esm/components/session/__generated__/SessionListItemDestroySessionMutation.graphql.js.map +0 -1
- package/dist/esm/components/session/__generated__/SessionListItem_session.graphql.js.map +0 -1
- package/dist/esm/components/session/__generated__/SessionListRefetchQuery.graphql.js.map +0 -1
- package/dist/esm/components/session/__generated__/SessionList_sessions.graphql.js.map +0 -1
- package/dist/esm/components/session/formatDate.js.map +0 -1
- package/dist/esm/components/session/getLastSeen.js.map +0 -1
- package/dist/esm/components/shared/ButtonUpdate.js.map +0 -1
- package/dist/esm/components/shared/ErrorResult.js.map +0 -1
- package/dist/esm/components/shared/FormError.js.map +0 -1
- package/dist/esm/components/shared/MainLoader.js.map +0 -1
- package/dist/esm/components/shared/icons/AndroidIcon.js +0 -11
- package/dist/esm/components/shared/icons/AndroidIcon.js.map +0 -1
- package/dist/esm/components/shared/icons/AppleIcon.js +0 -11
- package/dist/esm/components/shared/icons/AppleIcon.js.map +0 -1
- package/dist/esm/components/shared/icons/BrowserIcon.js +0 -11
- package/dist/esm/components/shared/icons/BrowserIcon.js.map +0 -1
- package/dist/esm/components/shared/icons/ProfileIcon.js +0 -11
- package/dist/esm/components/shared/icons/ProfileIcon.js.map +0 -1
- package/dist/esm/components/shared/icons/UnknownDeviceIcon.js +0 -11
- package/dist/esm/components/shared/icons/UnknownDeviceIcon.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/utils/getError.js.map +0 -1
- package/dist/esm/utils/getUserFullName.js.map +0 -1
- package/dist/esm/utils/handleFormErrors.js.map +0 -1
- package/dist/types/components/profile/ProfileButton.d.ts.map +0 -1
- package/dist/types/components/profile/ProfileConfigContext.d.ts.map +0 -1
- package/dist/types/components/profile/ProfileContext.d.ts.map +0 -1
- package/dist/types/components/profile/ProfileDrawer.d.ts.map +0 -1
- package/dist/types/components/profile/ProfileDrawerContent.d.ts.map +0 -1
- package/dist/types/components/profile/ProfileNavigationItem.d.ts.map +0 -1
- package/dist/types/components/profile/ProfileUpdateNameModal.d.ts.map +0 -1
- package/dist/types/components/profile/ProfileUpdatePasswordModal.d.ts.map +0 -1
- package/dist/types/components/profile/ProtectedWrapper.d.ts.map +0 -1
- package/dist/types/components/profile/UserAvatar.d.ts.map +0 -1
- package/dist/types/components/profile/UserAvatarAddon.d.ts.map +0 -1
- package/dist/types/components/profile/__generated__/ProfileDrawerContentSignOutMutation.graphql.d.ts.map +0 -1
- package/dist/types/components/profile/__generated__/ProfileDrawerContentUpdateAvatarMutation.graphql.d.ts.map +0 -1
- package/dist/types/components/profile/__generated__/ProfileUpdateNameModalMutation.graphql.d.ts.map +0 -1
- package/dist/types/components/profile/__generated__/ProfileUpdatePasswordModalMutation.graphql.d.ts.map +0 -1
- package/dist/types/components/profile/__generated__/ProtectedWrapperQuery.graphql.d.ts.map +0 -1
- package/dist/types/components/session/SessionDrawer.d.ts.map +0 -1
- package/dist/types/components/session/SessionDrawerContent.d.ts.map +0 -1
- package/dist/types/components/session/SessionList.d.ts.map +0 -1
- package/dist/types/components/session/SessionListItem.d.ts.map +0 -1
- package/dist/types/components/session/SessionListSkeleton.d.ts.map +0 -1
- package/dist/types/components/session/__generated__/SessionDrawerContentQuery.graphql.d.ts.map +0 -1
- package/dist/types/components/session/__generated__/SessionListDestroyAllOtherSessionsMutation.graphql.d.ts.map +0 -1
- package/dist/types/components/session/__generated__/SessionListItemDestroySessionMutation.graphql.d.ts.map +0 -1
- package/dist/types/components/session/__generated__/SessionListItem_session.graphql.d.ts.map +0 -1
- package/dist/types/components/session/__generated__/SessionListRefetchQuery.graphql.d.ts.map +0 -1
- package/dist/types/components/session/__generated__/SessionList_sessions.graphql.d.ts.map +0 -1
- package/dist/types/components/session/formatDate.d.ts.map +0 -1
- package/dist/types/components/session/getLastSeen.d.ts +0 -3
- package/dist/types/components/session/getLastSeen.d.ts.map +0 -1
- package/dist/types/components/shared/ButtonUpdate.d.ts.map +0 -1
- package/dist/types/components/shared/ErrorResult.d.ts.map +0 -1
- package/dist/types/components/shared/FormError.d.ts.map +0 -1
- package/dist/types/components/shared/MainLoader.d.ts.map +0 -1
- package/dist/types/components/shared/icons/AndroidIcon.d.ts.map +0 -1
- package/dist/types/components/shared/icons/AppleIcon.d.ts.map +0 -1
- package/dist/types/components/shared/icons/BrowserIcon.d.ts.map +0 -1
- package/dist/types/components/shared/icons/ProfileIcon.d.ts.map +0 -1
- package/dist/types/components/shared/icons/UnknownDeviceIcon.d.ts.map +0 -1
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/utils/getError.d.ts.map +0 -1
- package/dist/types/utils/getUserFullName.d.ts.map +0 -1
- package/dist/types/utils/handleFormErrors.d.ts.map +0 -1
- /package/dist/{types/components → components}/profile/ProfileConfigContext.d.ts +0 -0
- /package/dist/{types/components → components}/profile/ProfileContext.d.ts +0 -0
- /package/dist/{types/components → components}/profile/ProfileUpdateNameModal.d.ts +0 -0
- /package/dist/{types/components → components}/profile/ProfileUpdatePasswordModal.d.ts +0 -0
- /package/dist/{types/components → components}/profile/ProtectedWrapper.d.ts +0 -0
- /package/dist/{types/components → components}/session/SessionDrawerContent.d.ts +0 -0
- /package/dist/{types/components → components}/session/SessionListSkeleton.d.ts +0 -0
- /package/dist/{types/components → components}/shared/ErrorResult.d.ts +0 -0
- /package/dist/{types/components → components}/shared/FormError.d.ts +0 -0
- /package/dist/{types/components → components}/shared/MainLoader.d.ts +0 -0
- /package/dist/{types/index.d.ts → index.d.ts} +0 -0
- /package/dist/{types/utils → utils}/getError.d.ts +0 -0
- /package/dist/{types/utils → utils}/getUserFullName.d.ts +0 -0
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { Form, FormItem, Input, message, Modal } from '@os-design/core';
|
|
2
|
+
import { FormProvider, useForm } from '@os-design/form';
|
|
3
|
+
import graphql from 'babel-plugin-relay/macro';
|
|
4
|
+
import React, { useCallback, useEffect, useMemo } from 'react';
|
|
5
|
+
import { useTranslation } from 'react-i18next';
|
|
6
|
+
import { useMutation } from 'react-relay';
|
|
7
|
+
import handleFormErrors from '../../utils/handleFormErrors';
|
|
8
|
+
import FormError from '../shared/FormError';
|
|
9
|
+
import { type ProfileUpdateNameModalMutation } from './__generated__/ProfileUpdateNameModalMutation.graphql';
|
|
10
|
+
import { useProfile } from './ProfileContext';
|
|
11
|
+
|
|
12
|
+
interface ProfileUpdateNameFormData {
|
|
13
|
+
firstName: string;
|
|
14
|
+
lastName: string;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
interface ProfileUpdateNameModalProps {
|
|
18
|
+
visible: boolean;
|
|
19
|
+
onClose: () => void;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const ProfileUpdateNameModal: React.FC<ProfileUpdateNameModalProps> = ({
|
|
23
|
+
visible,
|
|
24
|
+
onClose,
|
|
25
|
+
}) => {
|
|
26
|
+
const { t } = useTranslation(['profile']);
|
|
27
|
+
const { firstName = '', lastName = '' } = useProfile();
|
|
28
|
+
|
|
29
|
+
const initValues = useMemo<ProfileUpdateNameFormData>(
|
|
30
|
+
() => ({ firstName, lastName }),
|
|
31
|
+
[firstName, lastName]
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
const { form, Field } = useForm(initValues);
|
|
35
|
+
|
|
36
|
+
const [commit, loading] = useMutation<ProfileUpdateNameModalMutation>(graphql`
|
|
37
|
+
mutation ProfileUpdateNameModalMutation($input: UpdateProfileInput!) {
|
|
38
|
+
updateProfile(input: $input) {
|
|
39
|
+
firstName
|
|
40
|
+
lastName
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
`);
|
|
44
|
+
|
|
45
|
+
// Reset the form when the modal is opened
|
|
46
|
+
useEffect(() => {
|
|
47
|
+
if (visible) form.reset();
|
|
48
|
+
}, [form, visible]);
|
|
49
|
+
|
|
50
|
+
const onSubmit = useCallback(() => {
|
|
51
|
+
commit({
|
|
52
|
+
variables: {
|
|
53
|
+
input: form.values.getAll(),
|
|
54
|
+
},
|
|
55
|
+
onError: (error) => handleFormErrors(form, error),
|
|
56
|
+
onCompleted: () => {
|
|
57
|
+
message.success(t('profile:updated'));
|
|
58
|
+
onClose();
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
}, [commit, form, onClose, t]);
|
|
62
|
+
|
|
63
|
+
const firstNameData = useMemo(
|
|
64
|
+
() => ({
|
|
65
|
+
label: t('profile:updateNameModal.firstName.label'),
|
|
66
|
+
placeholder: t('profile:updateNameModal.firstName.placeholder'),
|
|
67
|
+
}),
|
|
68
|
+
[t]
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
const lastNameData = useMemo(
|
|
72
|
+
() => ({
|
|
73
|
+
label: t('profile:updateNameModal.lastName.label'),
|
|
74
|
+
placeholder: t('profile:updateNameModal.lastName.placeholder'),
|
|
75
|
+
}),
|
|
76
|
+
[t]
|
|
77
|
+
);
|
|
78
|
+
|
|
79
|
+
return (
|
|
80
|
+
<Modal
|
|
81
|
+
title={t('profile:updateNameModal.title')}
|
|
82
|
+
visible={visible}
|
|
83
|
+
okText={t('profile:update')}
|
|
84
|
+
okLoading={loading}
|
|
85
|
+
onOk={onSubmit}
|
|
86
|
+
onClose={onClose}
|
|
87
|
+
>
|
|
88
|
+
<FormProvider form={form}>
|
|
89
|
+
<Form>
|
|
90
|
+
<Field
|
|
91
|
+
name='firstName'
|
|
92
|
+
data={firstNameData}
|
|
93
|
+
render={(props, { error }, data) => (
|
|
94
|
+
<FormItem label={data.label} error={error}>
|
|
95
|
+
<Input placeholder={data.placeholder} {...props} />
|
|
96
|
+
</FormItem>
|
|
97
|
+
)}
|
|
98
|
+
/>
|
|
99
|
+
|
|
100
|
+
<Field
|
|
101
|
+
name='lastName'
|
|
102
|
+
data={lastNameData}
|
|
103
|
+
render={(props, { error }, data) => (
|
|
104
|
+
<FormItem label={data.label} error={error}>
|
|
105
|
+
<Input placeholder={data.placeholder} {...props} />
|
|
106
|
+
</FormItem>
|
|
107
|
+
)}
|
|
108
|
+
/>
|
|
109
|
+
|
|
110
|
+
<FormError />
|
|
111
|
+
</Form>
|
|
112
|
+
</FormProvider>
|
|
113
|
+
</Modal>
|
|
114
|
+
);
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
export default ProfileUpdateNameModal;
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { Form, FormItem, InputPassword, message, Modal } from '@os-design/core';
|
|
2
|
+
import { FormProvider, useForm } from '@os-design/form';
|
|
3
|
+
import graphql from 'babel-plugin-relay/macro';
|
|
4
|
+
import React, { useCallback, useEffect, useMemo } from 'react';
|
|
5
|
+
import { useTranslation } from 'react-i18next';
|
|
6
|
+
import { useMutation } from 'react-relay';
|
|
7
|
+
import handleFormErrors from '../../utils/handleFormErrors';
|
|
8
|
+
import FormError from '../shared/FormError';
|
|
9
|
+
import { type ProfileUpdatePasswordModalMutation } from './__generated__/ProfileUpdatePasswordModalMutation.graphql';
|
|
10
|
+
|
|
11
|
+
interface ProfileUpdatePasswordFormData {
|
|
12
|
+
currentPassword: string;
|
|
13
|
+
password: string;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
interface ProfileUpdatePasswordModalProps {
|
|
17
|
+
visible: boolean;
|
|
18
|
+
onClose: () => void;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const ProfileUpdatePasswordModal: React.FC<ProfileUpdatePasswordModalProps> = ({
|
|
22
|
+
visible,
|
|
23
|
+
onClose,
|
|
24
|
+
}) => {
|
|
25
|
+
const { t } = useTranslation(['profile']);
|
|
26
|
+
|
|
27
|
+
const initValues = useMemo<ProfileUpdatePasswordFormData>(
|
|
28
|
+
() => ({
|
|
29
|
+
currentPassword: '',
|
|
30
|
+
password: '',
|
|
31
|
+
}),
|
|
32
|
+
[]
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
const { form, Field } = useForm(initValues);
|
|
36
|
+
|
|
37
|
+
const [commit, loading] = useMutation<ProfileUpdatePasswordModalMutation>(
|
|
38
|
+
graphql`
|
|
39
|
+
mutation ProfileUpdatePasswordModalMutation(
|
|
40
|
+
$input: UpdatePasswordInput!
|
|
41
|
+
) {
|
|
42
|
+
updatePassword(input: $input) {
|
|
43
|
+
id
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
`
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
// Reset the form when the modal is opened
|
|
50
|
+
useEffect(() => {
|
|
51
|
+
if (visible) form.reset();
|
|
52
|
+
}, [form, visible]);
|
|
53
|
+
|
|
54
|
+
const onSubmit = useCallback(() => {
|
|
55
|
+
commit({
|
|
56
|
+
variables: {
|
|
57
|
+
input: form.values.getAll(),
|
|
58
|
+
},
|
|
59
|
+
onError: (error) => handleFormErrors(form, error),
|
|
60
|
+
onCompleted: () => {
|
|
61
|
+
message.success(t('profile:updatePasswordModal.success'));
|
|
62
|
+
onClose();
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
}, [commit, form, onClose, t]);
|
|
66
|
+
|
|
67
|
+
const currentPasswordData = useMemo(
|
|
68
|
+
() => ({
|
|
69
|
+
label: t('profile:updatePasswordModal.currentPassword.label'),
|
|
70
|
+
placeholder: t('profile:updatePasswordModal.currentPassword.placeholder'),
|
|
71
|
+
}),
|
|
72
|
+
[t]
|
|
73
|
+
);
|
|
74
|
+
|
|
75
|
+
const passwordData = useMemo(
|
|
76
|
+
() => ({
|
|
77
|
+
label: t('profile:updatePasswordModal.newPassword.label'),
|
|
78
|
+
placeholder: t('profile:updatePasswordModal.newPassword.placeholder'),
|
|
79
|
+
strengthNames: t('profile:updatePasswordModal.passwordStrengthNames', {
|
|
80
|
+
returnObjects: true,
|
|
81
|
+
}),
|
|
82
|
+
}),
|
|
83
|
+
[t]
|
|
84
|
+
);
|
|
85
|
+
|
|
86
|
+
return (
|
|
87
|
+
<Modal
|
|
88
|
+
title={t('profile:updatePasswordModal.title')}
|
|
89
|
+
visible={visible}
|
|
90
|
+
okText={t('profile:updatePasswordModal.button')}
|
|
91
|
+
okLoading={loading}
|
|
92
|
+
onOk={onSubmit}
|
|
93
|
+
onClose={onClose}
|
|
94
|
+
>
|
|
95
|
+
<FormProvider form={form}>
|
|
96
|
+
<Form>
|
|
97
|
+
<Field
|
|
98
|
+
name='currentPassword'
|
|
99
|
+
data={currentPasswordData}
|
|
100
|
+
render={(props, { error }, data) => (
|
|
101
|
+
<FormItem label={data.label} error={error}>
|
|
102
|
+
<InputPassword placeholder={data.placeholder} {...props} />
|
|
103
|
+
</FormItem>
|
|
104
|
+
)}
|
|
105
|
+
/>
|
|
106
|
+
|
|
107
|
+
<Field
|
|
108
|
+
name='password'
|
|
109
|
+
data={passwordData}
|
|
110
|
+
render={(props, { error }, data) => (
|
|
111
|
+
<FormItem label={data.label} error={error}>
|
|
112
|
+
<InputPassword
|
|
113
|
+
placeholder={data.placeholder}
|
|
114
|
+
showStrengthMeter
|
|
115
|
+
strengthNames={data.strengthNames}
|
|
116
|
+
{...props}
|
|
117
|
+
/>
|
|
118
|
+
</FormItem>
|
|
119
|
+
)}
|
|
120
|
+
/>
|
|
121
|
+
|
|
122
|
+
<FormError />
|
|
123
|
+
</Form>
|
|
124
|
+
</FormProvider>
|
|
125
|
+
</Modal>
|
|
126
|
+
);
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
export default ProfileUpdatePasswordModal;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import React, { useMemo } from 'react';
|
|
2
|
+
import graphql from 'babel-plugin-relay/macro';
|
|
3
|
+
import { useLazyLoadQuery } from 'react-relay';
|
|
4
|
+
import { ErrorBoundary } from '@os-design/utils';
|
|
5
|
+
import ProfileConfigContext from './ProfileConfigContext';
|
|
6
|
+
import ProfileContext from './ProfileContext';
|
|
7
|
+
import { type ProtectedWrapperQuery } from './__generated__/ProtectedWrapperQuery.graphql';
|
|
8
|
+
|
|
9
|
+
interface ProtectedWrapperLoaderProps {
|
|
10
|
+
children?: React.ReactNode;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const ProtectedWrapperLoader: React.FC<ProtectedWrapperLoaderProps> = ({
|
|
14
|
+
children,
|
|
15
|
+
}) => {
|
|
16
|
+
const { profile } = useLazyLoadQuery<ProtectedWrapperQuery>(
|
|
17
|
+
graphql`
|
|
18
|
+
query ProtectedWrapperQuery {
|
|
19
|
+
profile {
|
|
20
|
+
id
|
|
21
|
+
email
|
|
22
|
+
firstName
|
|
23
|
+
lastName
|
|
24
|
+
avatar
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
`,
|
|
28
|
+
{},
|
|
29
|
+
{ fetchPolicy: 'store-or-network' }
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
const profileContext = useMemo(
|
|
33
|
+
() => ({
|
|
34
|
+
id: profile.id,
|
|
35
|
+
email: profile.email,
|
|
36
|
+
firstName: profile.firstName || undefined,
|
|
37
|
+
lastName: profile.lastName || undefined,
|
|
38
|
+
avatar: profile.avatar || undefined,
|
|
39
|
+
}),
|
|
40
|
+
[
|
|
41
|
+
profile.avatar,
|
|
42
|
+
profile.email,
|
|
43
|
+
profile.firstName,
|
|
44
|
+
profile.id,
|
|
45
|
+
profile.lastName,
|
|
46
|
+
]
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
return (
|
|
50
|
+
<ProfileContext.Provider value={profileContext}>
|
|
51
|
+
{children}
|
|
52
|
+
</ProfileContext.Provider>
|
|
53
|
+
);
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
export interface ProtectedWrapperProps {
|
|
57
|
+
bucketId: string;
|
|
58
|
+
children?: React.ReactNode;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
const ProtectedWrapper: React.FC<ProtectedWrapperProps> = ({
|
|
62
|
+
bucketId,
|
|
63
|
+
children,
|
|
64
|
+
}) => {
|
|
65
|
+
const profileConfigContext = useMemo(() => ({ bucketId }), [bucketId]);
|
|
66
|
+
|
|
67
|
+
return (
|
|
68
|
+
<ProfileConfigContext.Provider value={profileConfigContext}>
|
|
69
|
+
<ErrorBoundary
|
|
70
|
+
fallback={() => {
|
|
71
|
+
window.location.href = '/auth/';
|
|
72
|
+
return null;
|
|
73
|
+
}}
|
|
74
|
+
>
|
|
75
|
+
<ProtectedWrapperLoader>{children}</ProtectedWrapperLoader>
|
|
76
|
+
</ErrorBoundary>
|
|
77
|
+
</ProfileConfigContext.Provider>
|
|
78
|
+
);
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export default ProtectedWrapper;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React, { useMemo } from 'react';
|
|
2
|
+
import { Avatar, type AvatarProps } from '@os-design/core';
|
|
3
|
+
import { useProfile } from './ProfileContext';
|
|
4
|
+
import { useProfileConfig } from './ProfileConfigContext';
|
|
5
|
+
|
|
6
|
+
const UserAvatar: React.FC<AvatarProps> = (props) => {
|
|
7
|
+
const { email, firstName, lastName, avatar } = useProfile();
|
|
8
|
+
const { bucketId } = useProfileConfig();
|
|
9
|
+
|
|
10
|
+
const avatarProps = useMemo(() => {
|
|
11
|
+
if (firstName || lastName) return { firstName, lastName };
|
|
12
|
+
return { firstName: email };
|
|
13
|
+
}, [email, firstName, lastName]);
|
|
14
|
+
|
|
15
|
+
const image = useMemo(() => {
|
|
16
|
+
if (!avatar) return undefined;
|
|
17
|
+
return `https://storage.yandexcloud.net/${bucketId}/users/${avatar}`;
|
|
18
|
+
}, [avatar, bucketId]);
|
|
19
|
+
|
|
20
|
+
return <Avatar {...avatarProps} image={image} {...props} />;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export default UserAvatar;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ThemeOverrider } from '@os-design/theming';
|
|
3
|
+
import styled from '@emotion/styled';
|
|
4
|
+
import { resetFocusStyles, transitionStyles } from '@os-design/styles';
|
|
5
|
+
import { type AvatarProps } from '@os-design/core';
|
|
6
|
+
import UserAvatar from './UserAvatar';
|
|
7
|
+
|
|
8
|
+
export interface UserAvatarAddonProps extends AvatarProps {
|
|
9
|
+
onClick?: () => void;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const Addon = styled.div`
|
|
13
|
+
width: 100%;
|
|
14
|
+
height: ${(p) => p.theme.navigationSideWidth}em;
|
|
15
|
+
min-height: ${(p) => p.theme.navigationSideWidth}em;
|
|
16
|
+
display: flex;
|
|
17
|
+
justify-content: center;
|
|
18
|
+
align-items: center;
|
|
19
|
+
`;
|
|
20
|
+
|
|
21
|
+
const AVATAR_SIZE = 2.5;
|
|
22
|
+
|
|
23
|
+
const StyledUserAvatar = styled(UserAvatar)`
|
|
24
|
+
${resetFocusStyles};
|
|
25
|
+
cursor: pointer;
|
|
26
|
+
|
|
27
|
+
@media (hover: hover) {
|
|
28
|
+
&:hover,
|
|
29
|
+
&:focus {
|
|
30
|
+
opacity: 0.7;
|
|
31
|
+
}
|
|
32
|
+
${transitionStyles('opacity')};
|
|
33
|
+
}
|
|
34
|
+
`;
|
|
35
|
+
|
|
36
|
+
const UserAvatarAddon: React.FC<UserAvatarAddonProps> = ({
|
|
37
|
+
onClick = () => {},
|
|
38
|
+
...rest
|
|
39
|
+
}) => (
|
|
40
|
+
<Addon>
|
|
41
|
+
<ThemeOverrider
|
|
42
|
+
overrides={(theme) => ({
|
|
43
|
+
avatarOnlineColorScoop: theme.navigationColorBg,
|
|
44
|
+
})}
|
|
45
|
+
>
|
|
46
|
+
<StyledUserAvatar
|
|
47
|
+
online
|
|
48
|
+
size={`${AVATAR_SIZE}em`}
|
|
49
|
+
tabIndex={0}
|
|
50
|
+
role='button'
|
|
51
|
+
onClick={onClick}
|
|
52
|
+
onKeyDown={(e) => {
|
|
53
|
+
if (e.key === 'Enter') onClick();
|
|
54
|
+
}}
|
|
55
|
+
onMouseDown={(e) => e.preventDefault()}
|
|
56
|
+
{...rest}
|
|
57
|
+
/>
|
|
58
|
+
</ThemeOverrider>
|
|
59
|
+
</Addon>
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
export default UserAvatarAddon;
|
package/src/lib/components/profile/__generated__/ProfileDrawerContentSignOutMutation.graphql.ts
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @generated SignedSource<<efa148d8abdd56447bf12fa5b041af67>>
|
|
3
|
+
* @lightSyntaxTransform
|
|
4
|
+
* @nogrep
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/* tslint:disable */
|
|
8
|
+
/* eslint-disable */
|
|
9
|
+
// @ts-nocheck
|
|
10
|
+
|
|
11
|
+
import { ConcreteRequest } from 'relay-runtime';
|
|
12
|
+
export type ProfileDrawerContentSignOutMutation$variables = Record<PropertyKey, never>;
|
|
13
|
+
export type ProfileDrawerContentSignOutMutation$data = {
|
|
14
|
+
readonly signOut: {
|
|
15
|
+
readonly ok: boolean;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
export type ProfileDrawerContentSignOutMutation = {
|
|
19
|
+
response: ProfileDrawerContentSignOutMutation$data;
|
|
20
|
+
variables: ProfileDrawerContentSignOutMutation$variables;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
const node: ConcreteRequest = (function(){
|
|
24
|
+
var v0 = [
|
|
25
|
+
{
|
|
26
|
+
"alias": null,
|
|
27
|
+
"args": null,
|
|
28
|
+
"concreteType": "StatusPayload",
|
|
29
|
+
"kind": "LinkedField",
|
|
30
|
+
"name": "signOut",
|
|
31
|
+
"plural": false,
|
|
32
|
+
"selections": [
|
|
33
|
+
{
|
|
34
|
+
"alias": null,
|
|
35
|
+
"args": null,
|
|
36
|
+
"kind": "ScalarField",
|
|
37
|
+
"name": "ok",
|
|
38
|
+
"storageKey": null
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
"storageKey": null
|
|
42
|
+
}
|
|
43
|
+
];
|
|
44
|
+
return {
|
|
45
|
+
"fragment": {
|
|
46
|
+
"argumentDefinitions": [],
|
|
47
|
+
"kind": "Fragment",
|
|
48
|
+
"metadata": null,
|
|
49
|
+
"name": "ProfileDrawerContentSignOutMutation",
|
|
50
|
+
"selections": (v0/*: any*/),
|
|
51
|
+
"type": "Mutation",
|
|
52
|
+
"abstractKey": null
|
|
53
|
+
},
|
|
54
|
+
"kind": "Request",
|
|
55
|
+
"operation": {
|
|
56
|
+
"argumentDefinitions": [],
|
|
57
|
+
"kind": "Operation",
|
|
58
|
+
"name": "ProfileDrawerContentSignOutMutation",
|
|
59
|
+
"selections": (v0/*: any*/)
|
|
60
|
+
},
|
|
61
|
+
"params": {
|
|
62
|
+
"cacheID": "f5241cc562af19628cf38a9731067807",
|
|
63
|
+
"id": null,
|
|
64
|
+
"metadata": {},
|
|
65
|
+
"name": "ProfileDrawerContentSignOutMutation",
|
|
66
|
+
"operationKind": "mutation",
|
|
67
|
+
"text": "mutation ProfileDrawerContentSignOutMutation {\n signOut {\n ok\n }\n}\n"
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
})();
|
|
71
|
+
|
|
72
|
+
(node as any).hash = "c7ca96e9e713315606b0c22d196b6f7b";
|
|
73
|
+
|
|
74
|
+
export default node;
|
package/src/lib/components/profile/__generated__/ProfileDrawerContentUpdateAvatarMutation.graphql.ts
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @generated SignedSource<<08352a363b20a40c74d7623ce7ecf238>>
|
|
3
|
+
* @lightSyntaxTransform
|
|
4
|
+
* @nogrep
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/* tslint:disable */
|
|
8
|
+
/* eslint-disable */
|
|
9
|
+
// @ts-nocheck
|
|
10
|
+
|
|
11
|
+
import { ConcreteRequest } from 'relay-runtime';
|
|
12
|
+
export type UpdateAvatarInput = {
|
|
13
|
+
avatar?: any | null | undefined;
|
|
14
|
+
};
|
|
15
|
+
export type ProfileDrawerContentUpdateAvatarMutation$variables = {
|
|
16
|
+
input: UpdateAvatarInput;
|
|
17
|
+
};
|
|
18
|
+
export type ProfileDrawerContentUpdateAvatarMutation$data = {
|
|
19
|
+
readonly updateAvatar: {
|
|
20
|
+
readonly avatar: string | null | undefined;
|
|
21
|
+
readonly id: string;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
export type ProfileDrawerContentUpdateAvatarMutation = {
|
|
25
|
+
response: ProfileDrawerContentUpdateAvatarMutation$data;
|
|
26
|
+
variables: ProfileDrawerContentUpdateAvatarMutation$variables;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const node: ConcreteRequest = (function(){
|
|
30
|
+
var v0 = [
|
|
31
|
+
{
|
|
32
|
+
"defaultValue": null,
|
|
33
|
+
"kind": "LocalArgument",
|
|
34
|
+
"name": "input"
|
|
35
|
+
}
|
|
36
|
+
],
|
|
37
|
+
v1 = [
|
|
38
|
+
{
|
|
39
|
+
"alias": null,
|
|
40
|
+
"args": [
|
|
41
|
+
{
|
|
42
|
+
"kind": "Variable",
|
|
43
|
+
"name": "input",
|
|
44
|
+
"variableName": "input"
|
|
45
|
+
}
|
|
46
|
+
],
|
|
47
|
+
"concreteType": "User",
|
|
48
|
+
"kind": "LinkedField",
|
|
49
|
+
"name": "updateAvatar",
|
|
50
|
+
"plural": false,
|
|
51
|
+
"selections": [
|
|
52
|
+
{
|
|
53
|
+
"alias": null,
|
|
54
|
+
"args": null,
|
|
55
|
+
"kind": "ScalarField",
|
|
56
|
+
"name": "id",
|
|
57
|
+
"storageKey": null
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"alias": null,
|
|
61
|
+
"args": null,
|
|
62
|
+
"kind": "ScalarField",
|
|
63
|
+
"name": "avatar",
|
|
64
|
+
"storageKey": null
|
|
65
|
+
}
|
|
66
|
+
],
|
|
67
|
+
"storageKey": null
|
|
68
|
+
}
|
|
69
|
+
];
|
|
70
|
+
return {
|
|
71
|
+
"fragment": {
|
|
72
|
+
"argumentDefinitions": (v0/*: any*/),
|
|
73
|
+
"kind": "Fragment",
|
|
74
|
+
"metadata": null,
|
|
75
|
+
"name": "ProfileDrawerContentUpdateAvatarMutation",
|
|
76
|
+
"selections": (v1/*: any*/),
|
|
77
|
+
"type": "Mutation",
|
|
78
|
+
"abstractKey": null
|
|
79
|
+
},
|
|
80
|
+
"kind": "Request",
|
|
81
|
+
"operation": {
|
|
82
|
+
"argumentDefinitions": (v0/*: any*/),
|
|
83
|
+
"kind": "Operation",
|
|
84
|
+
"name": "ProfileDrawerContentUpdateAvatarMutation",
|
|
85
|
+
"selections": (v1/*: any*/)
|
|
86
|
+
},
|
|
87
|
+
"params": {
|
|
88
|
+
"cacheID": "b749732615af9f8027386d69ffb57b63",
|
|
89
|
+
"id": null,
|
|
90
|
+
"metadata": {},
|
|
91
|
+
"name": "ProfileDrawerContentUpdateAvatarMutation",
|
|
92
|
+
"operationKind": "mutation",
|
|
93
|
+
"text": "mutation ProfileDrawerContentUpdateAvatarMutation(\n $input: UpdateAvatarInput!\n) {\n updateAvatar(input: $input) {\n id\n avatar\n }\n}\n"
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
})();
|
|
97
|
+
|
|
98
|
+
(node as any).hash = "cf72a6314772ed0d1f182b197c858505";
|
|
99
|
+
|
|
100
|
+
export default node;
|