@os-team/profile 1.0.31 → 1.0.35

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.
Files changed (70) hide show
  1. package/dist/cjs/components/profile/ProfileConfigContext.js +1 -1
  2. package/dist/cjs/components/profile/ProfileContext.js +1 -1
  3. package/dist/cjs/components/profile/ProfileDrawer.js +1 -1
  4. package/dist/cjs/components/profile/ProfileUpdateNameModal.js +12 -9
  5. package/dist/cjs/components/profile/ProfileUpdateNameModal.js.map +1 -1
  6. package/dist/cjs/components/profile/ProfileUpdatePasswordModal.js +12 -9
  7. package/dist/cjs/components/profile/ProfileUpdatePasswordModal.js.map +1 -1
  8. package/dist/cjs/components/profile/ProtectedWrapper.js +28 -19
  9. package/dist/cjs/components/profile/ProtectedWrapper.js.map +1 -1
  10. package/dist/cjs/components/profile/UserAvatar.js +1 -1
  11. package/dist/cjs/components/profile/__generated__/ProfileDrawerUpdateAvatarMutation.graphql.js.map +1 -1
  12. package/dist/cjs/components/profile/__generated__/ProfileUpdateNameModalMutation.graphql.js.map +1 -1
  13. package/dist/cjs/components/session/SessionDrawer.js +1 -1
  14. package/dist/cjs/components/session/SessionDrawerContent.js +9 -7
  15. package/dist/cjs/components/session/SessionDrawerContent.js.map +1 -1
  16. package/dist/cjs/components/session/SessionList.js +22 -27
  17. package/dist/cjs/components/session/SessionList.js.map +1 -1
  18. package/dist/cjs/components/session/SessionListItem.js +6 -9
  19. package/dist/cjs/components/session/SessionListItem.js.map +1 -1
  20. package/dist/cjs/components/session/__generated__/SessionDrawerContentQuery.graphql.js +96 -165
  21. package/dist/cjs/components/session/__generated__/SessionDrawerContentQuery.graphql.js.map +1 -1
  22. package/dist/cjs/components/session/__generated__/SessionListItem_session.graphql.js.map +1 -1
  23. package/dist/cjs/components/session/__generated__/SessionListRefetchQuery.graphql.js +183 -0
  24. package/dist/cjs/components/session/__generated__/SessionListRefetchQuery.graphql.js.map +1 -0
  25. package/dist/cjs/components/session/__generated__/SessionList_sessions.graphql.js +29 -85
  26. package/dist/cjs/components/session/__generated__/SessionList_sessions.graphql.js.map +1 -1
  27. package/dist/cjs/index.js +1 -1
  28. package/dist/esm/components/profile/ProfileDrawer.js +9 -3
  29. package/dist/esm/components/profile/ProfileDrawer.js.map +1 -1
  30. package/dist/esm/components/profile/ProfileUpdateNameModal.js +10 -9
  31. package/dist/esm/components/profile/ProfileUpdateNameModal.js.map +1 -1
  32. package/dist/esm/components/profile/ProfileUpdatePasswordModal.js +10 -9
  33. package/dist/esm/components/profile/ProfileUpdatePasswordModal.js.map +1 -1
  34. package/dist/esm/components/profile/ProtectedWrapper.js +24 -25
  35. package/dist/esm/components/profile/ProtectedWrapper.js.map +1 -1
  36. package/dist/esm/components/profile/__generated__/ProfileDrawerUpdateAvatarMutation.graphql.js.map +1 -1
  37. package/dist/esm/components/profile/__generated__/ProfileUpdateNameModalMutation.graphql.js.map +1 -1
  38. package/dist/esm/components/session/SessionDrawerContent.js +7 -5
  39. package/dist/esm/components/session/SessionDrawerContent.js.map +1 -1
  40. package/dist/esm/components/session/SessionList.js +14 -14
  41. package/dist/esm/components/session/SessionList.js.map +1 -1
  42. package/dist/esm/components/session/SessionListItem.js +3 -4
  43. package/dist/esm/components/session/SessionListItem.js.map +1 -1
  44. package/dist/esm/components/session/__generated__/SessionDrawerContentQuery.graphql.js +96 -165
  45. package/dist/esm/components/session/__generated__/SessionDrawerContentQuery.graphql.js.map +1 -1
  46. package/dist/esm/components/session/__generated__/SessionListItem_session.graphql.js.map +1 -1
  47. package/dist/esm/components/session/__generated__/SessionListRefetchQuery.graphql.js +175 -0
  48. package/dist/esm/components/session/__generated__/SessionListRefetchQuery.graphql.js.map +1 -0
  49. package/dist/esm/components/session/__generated__/SessionList_sessions.graphql.js +26 -85
  50. package/dist/esm/components/session/__generated__/SessionList_sessions.graphql.js.map +1 -1
  51. package/dist/esm/components/shared/ErrorResult.js +3 -1
  52. package/dist/esm/components/shared/ErrorResult.js.map +1 -1
  53. package/dist/types/components/profile/ProfileUpdateNameModal.d.ts.map +1 -1
  54. package/dist/types/components/profile/ProfileUpdatePasswordModal.d.ts.map +1 -1
  55. package/dist/types/components/profile/ProtectedWrapper.d.ts.map +1 -1
  56. package/dist/types/components/profile/__generated__/ProfileDrawerUpdateAvatarMutation.graphql.d.ts +1 -1
  57. package/dist/types/components/profile/__generated__/ProfileDrawerUpdateAvatarMutation.graphql.d.ts.map +1 -1
  58. package/dist/types/components/profile/__generated__/ProfileUpdateNameModalMutation.graphql.d.ts +2 -2
  59. package/dist/types/components/profile/__generated__/ProfileUpdateNameModalMutation.graphql.d.ts.map +1 -1
  60. package/dist/types/components/session/SessionDrawerContent.d.ts.map +1 -1
  61. package/dist/types/components/session/SessionList.d.ts.map +1 -1
  62. package/dist/types/components/session/SessionListItem.d.ts.map +1 -1
  63. package/dist/types/components/session/__generated__/SessionDrawerContentQuery.graphql.d.ts.map +1 -1
  64. package/dist/types/components/session/__generated__/SessionListItem_session.graphql.d.ts +1 -1
  65. package/dist/types/components/session/__generated__/SessionListItem_session.graphql.d.ts.map +1 -1
  66. package/dist/types/components/session/__generated__/SessionListRefetchQuery.graphql.d.ts +13 -0
  67. package/dist/types/components/session/__generated__/SessionListRefetchQuery.graphql.d.ts.map +1 -0
  68. package/dist/types/components/session/__generated__/SessionList_sessions.graphql.d.ts +7 -11
  69. package/dist/types/components/session/__generated__/SessionList_sessions.graphql.d.ts.map +1 -1
  70. package/package.json +55 -55
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/components/session/SessionListItem.tsx"],"names":["sessionListItemFragment","Container","styled","div","p","theme","listItemColorBorder","Info","sizes","small","ellipsisStyles","Content","Title","LastSeen","inputColorPlaceholder","hasSwipeStyles","hasSwipe","css","openedStyles","opened","Actions","colorBg","slice","listItemActionsPaddingLeft","IconContainer","Icon","borderRadius","bgColor","nameVersionToString","name","version","mergeInfo","args","filter","item","join","SessionListItem","sessionKey","hideLastSeenAt","session","t","i18n","touchDevice","handlers","browser","browserName","browserVersion","os","osName","osVersion","deviceBrandModel","arr","deviceBrand","deviceModel","deviceManufacturer","unshift","title","deviceType","toLowerCase","returnObjects","deviceName","deviceInfo","isApp","ip","location","city","country","lastSeen","lsa","lastSeenAt","language","forms","number","iconComponent","iconColor","commitDestroySession","loadingDestroySession","destroySession","variables","input","id","updater","store","record","get","conn","ConnectionHandler","getConnection","deleteNode","onError","error","message","onCompleted","success"],"mappings":"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","sourcesContent":["import React, { useCallback, useMemo } from 'react';\nimport graphql from 'babel-plugin-relay/macro';\nimport { ConnectionHandler } from 'relay-runtime';\nimport { useFragment, useMutation } from 'react-relay/hooks';\nimport styled from '@emotion/styled';\nimport { useTranslation } from 'react-i18next';\nimport pluralForms from '@os-team/plural-forms';\nimport { Button, message } from '@os-design/core';\nimport {\n ellipsisStyles,\n horizontalPaddingStyles,\n transitionStyles,\n} from '@os-design/styles';\nimport { clr, Color } from '@os-design/theming';\nimport { isTouchDevice, omitEmotionProps, useSwipe } from '@os-design/utils';\nimport { SignOut } from '@os-design/icons';\nimport { css } from '@emotion/react';\nimport { SessionListItem_session$key } from './__generated__/SessionListItem_session.graphql';\nimport getLastSeen from './getLastSeen';\nimport formatDate from './formatDate';\nimport { SessionListItemDestroySessionMutation } from './__generated__/SessionListItemDestroySessionMutation.graphql';\nimport UnknownDeviceIcon from '../shared/icons/UnknownDeviceIcon';\nimport BrowserIcon from '../shared/icons/BrowserIcon';\nimport AppleIcon from '../shared/icons/AppleIcon';\nimport AndroidIcon from '../shared/icons/AndroidIcon';\n\nconst sessionListItemFragment = graphql`\n fragment SessionListItem_session on SessionPayload {\n id\n isApp\n browserName\n browserVersion\n osName\n osVersion\n deviceType\n deviceName\n deviceManufacturer\n deviceBrand\n deviceModel\n ip\n country\n city\n lastSeenAt\n }\n`;\n\ninterface SessionListItemProps {\n sessionKey: SessionListItem_session$key;\n hideLastSeenAt?: boolean;\n}\n\nexport const Container = styled.div`\n display: flex;\n position: relative;\n padding: 0.5em 0;\n overflow: hidden;\n\n &:not(:last-of-type) {\n border-bottom: 1px solid ${(p) => clr(p.theme.listItemColorBorder)};\n }\n\n @media (hover: hover) {\n // Hide actions by default\n & > nav {\n opacity: 0;\n }\n\n // Display actions either on focus, or on hover\n &:hover,\n &:focus-within {\n & > nav {\n opacity: 1;\n }\n }\n }\n\n ${horizontalPaddingStyles()};\n`;\n\nconst Info = styled.div`\n font-size: ${(p) => p.theme.sizes.small}em;\n ${ellipsisStyles};\n`;\n\nexport const Content = styled.div`\n flex: 1;\n overflow: hidden;\n`;\n\nconst Title = styled(Info)`\n font-weight: 500;\n`;\n\nconst LastSeen = styled(Info)`\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n`;\n\nconst hasSwipeStyles = (p) =>\n p.hasSwipe &&\n css`\n transform: translateX(100%);\n ${transitionStyles('transform')(p)};\n `;\n\nconst openedStyles = (p) =>\n p.opened &&\n css`\n transform: translateX(0);\n `;\n\ninterface ActionsProps {\n hasSwipe: boolean;\n opened: boolean;\n}\nconst Actions = styled(\n 'nav',\n omitEmotionProps('hasSwipe', 'opened')\n)<ActionsProps>`\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n\n display: flex;\n align-items: center;\n\n background: linear-gradient(\n to right,\n ${(p) => clr([...p.theme.colorBg.slice(0, 3), 0] as Color)},\n ${(p) => clr(p.theme.colorBg)}\n ${(p) => p.theme.listItemActionsPaddingLeft}em\n );\n\n ${hasSwipeStyles};\n ${openedStyles};\n ${horizontalPaddingStyles('right')};\n`;\n\nexport const IconContainer = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 0.6em;\n`;\n\ninterface IconProps {\n bgColor: string;\n}\nexport const Icon = styled('div', omitEmotionProps('bgColor'))<IconProps>`\n font-size: 1.4em;\n width: 1.3em;\n height: 1.3em;\n\n svg {\n height: 1.3em;\n }\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n border-radius: ${(p) => p.theme.borderRadius}em;\n background-color: ${(p) => p.bgColor};\n color: hsl(0, 0%, 100%);\n`;\n\nconst nameVersionToString = (\n name: string | null,\n version: string | null\n): string | null => {\n if (!name) return null;\n return `${name}${version ? ` ${version}` : ''}`;\n};\n\nconst mergeInfo = (...args: Array<string | null>): string | null =>\n args.filter((item) => item !== null).join(', ') || null;\n\nconst SessionListItem: React.FC<SessionListItemProps> = ({\n sessionKey,\n hideLastSeenAt,\n}) => {\n const session = useFragment(sessionListItemFragment, sessionKey);\n const { t, i18n } = useTranslation('profile');\n const touchDevice = useMemo(() => isTouchDevice(), []);\n const { opened, handlers } = useSwipe();\n\n const browser = useMemo(\n () => nameVersionToString(session.browserName, session.browserVersion),\n [session.browserName, session.browserVersion]\n );\n\n const os = useMemo(\n () => nameVersionToString(session.osName, session.osVersion),\n [session.osName, session.osVersion]\n );\n\n const deviceBrandModel = useMemo(() => {\n const arr = [session.deviceBrand, session.deviceModel];\n // Include the manufacturer name only if it does not equal to the brand name.\n // For example, it allows to avoid \"Apple Apple iPhone 6\".\n if (session.deviceManufacturer !== session.deviceBrand) {\n arr.unshift(session.deviceManufacturer);\n }\n return arr.filter((item) => item !== null).join(' ') || null;\n }, [session.deviceBrand, session.deviceManufacturer, session.deviceModel]);\n\n const title = useMemo(() => {\n let deviceType = (session.deviceType || 'unknown').toLowerCase();\n if (browser) deviceType = 'browser';\n return `${\n t('profile:sessions.deviceType', { returnObjects: true })[deviceType]\n }${session.deviceName ? ` ${session.deviceName}` : ''}`;\n }, [browser, session.deviceName, session.deviceType, t]);\n\n const deviceInfo = useMemo(\n () =>\n session.isApp ? mergeInfo(deviceBrandModel, os) : mergeInfo(browser, os),\n [browser, deviceBrandModel, os, session.isApp]\n );\n\n const ip = useMemo(() => {\n if (!session.ip) return null;\n const location = mergeInfo(session.city, session.country);\n return `${session.ip}${location ? ` (${location})` : ''}`;\n }, [session.city, session.country, session.ip]);\n\n const lastSeen = useMemo(() => {\n const lsa = getLastSeen(session.lastSeenAt);\n if (!lsa) {\n return `${t('profile:sessions.lastSeenOn')} ${formatDate(\n session.lastSeenAt,\n t,\n i18n.language\n )}`;\n }\n return `${t('profile:sessions.lastSeen')} ${lsa[0]} ${pluralForms({\n language: i18n.language,\n forms: t(`profile:sessions.${lsa[1]}`, { returnObjects: true }),\n number: lsa[0],\n })} ${t('profile:sessions.ago')}`;\n }, [i18n.language, session.lastSeenAt, t]);\n\n const [iconComponent, iconColor] = useMemo(() => {\n if (browser) return [<BrowserIcon />, 'hsl(30, 60%, 50%)'];\n if (session.isApp) {\n if (session.osName === 'iOS' || session.osName === 'iPhone OS') {\n return [<AppleIcon />, 'hsl(0, 0%, 50%)'];\n }\n if (session.osName === 'Android')\n return [<AndroidIcon />, 'hsl(150, 60%, 50%)'];\n }\n return [<UnknownDeviceIcon />, 'hsl(5, 60%, 50%)'];\n }, [browser, session.isApp, session.osName]);\n\n const [commitDestroySession, loadingDestroySession] =\n useMutation<SessionListItemDestroySessionMutation>(graphql`\n mutation SessionListItemDestroySessionMutation(\n $input: DestroySessionInput!\n ) {\n destroySession(input: $input) {\n ok\n }\n }\n `);\n\n const destroySession = useCallback(() => {\n commitDestroySession({\n variables: {\n input: {\n id: session.id,\n },\n },\n updater: (store) => {\n const record = store.get('client:root');\n if (!record) return;\n\n const conn = ConnectionHandler.getConnection(\n record,\n 'SessionList_sessions'\n );\n if (!conn) return;\n\n ConnectionHandler.deleteNode(conn, session.id);\n },\n onError: (error) => {\n message.error(error.message);\n },\n onCompleted: () => {\n message.success(t('profile:sessions.destroyed'));\n },\n });\n }, [commitDestroySession, session.id, t]);\n\n return (\n <Container {...handlers}>\n <IconContainer>\n <Icon bgColor={iconColor}>{iconComponent}</Icon>\n </IconContainer>\n\n <Content>\n <Title>{title}</Title>\n {deviceInfo && <Info>{deviceInfo}</Info>}\n {ip && <Info>{ip}</Info>}\n {!hideLastSeenAt && <LastSeen>{lastSeen}</LastSeen>}\n </Content>\n\n <Actions hasSwipe={touchDevice} opened={opened}>\n <Button\n type='ghost'\n wide='never'\n size='small'\n loading={loadingDestroySession}\n onClick={destroySession}\n >\n <SignOut />\n </Button>\n </Actions>\n </Container>\n );\n};\n\nexport default SessionListItem;\n"],"file":"SessionListItem.js"}
1
+ {"version":3,"sources":["../../../../src/lib/components/session/SessionListItem.tsx"],"names":["sessionListItemFragment","Container","styled","div","p","theme","listItemColorBorder","Info","sizes","small","ellipsisStyles","Content","Title","LastSeen","inputColorPlaceholder","hasSwipeStyles","hasSwipe","css","openedStyles","opened","Actions","colorBg","slice","listItemActionsPaddingLeft","IconContainer","Icon","borderRadius","bgColor","nameVersionToString","name","version","mergeInfo","args","filter","item","join","SessionListItem","sessionKey","hideLastSeenAt","session","t","i18n","touchDevice","handlers","browser","browserName","browserVersion","os","osName","osVersion","deviceBrandModel","arr","deviceBrand","deviceModel","deviceManufacturer","unshift","title","deviceType","toLowerCase","returnObjects","deviceName","deviceInfo","isApp","ip","location","city","country","lastSeen","lsa","lastSeenAt","language","forms","number","iconComponent","iconColor","commitDestroySession","loadingDestroySession","destroySession","variables","input","id","updater","store","record","get","sessionRecords","getLinkedRecords","setLinkedRecords","getDataID","onError","error","message","onCompleted","success"],"mappings":"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","sourcesContent":["import React, { useCallback, useMemo } from 'react';\nimport graphql from 'babel-plugin-relay/macro';\nimport { useFragment, useMutation } from 'react-relay/hooks';\nimport styled from '@emotion/styled';\nimport { useTranslation } from 'react-i18next';\nimport pluralForms from '@os-team/plural-forms';\nimport { Button, message } from '@os-design/core';\nimport {\n ellipsisStyles,\n horizontalPaddingStyles,\n transitionStyles,\n} from '@os-design/styles';\nimport { clr, Color } from '@os-design/theming';\nimport { isTouchDevice, omitEmotionProps, useSwipe } from '@os-design/utils';\nimport { SignOut } from '@os-design/icons';\nimport { css } from '@emotion/react';\nimport { SessionListItem_session$key } from './__generated__/SessionListItem_session.graphql';\nimport getLastSeen from './getLastSeen';\nimport formatDate from './formatDate';\nimport { SessionListItemDestroySessionMutation } from './__generated__/SessionListItemDestroySessionMutation.graphql';\nimport UnknownDeviceIcon from '../shared/icons/UnknownDeviceIcon';\nimport BrowserIcon from '../shared/icons/BrowserIcon';\nimport AppleIcon from '../shared/icons/AppleIcon';\nimport AndroidIcon from '../shared/icons/AndroidIcon';\n\nconst sessionListItemFragment = graphql`\n fragment SessionListItem_session on SessionPayload {\n id\n isApp\n browserName\n browserVersion\n osName\n osVersion\n deviceType\n deviceName\n deviceManufacturer\n deviceBrand\n deviceModel\n ip\n country\n city\n lastSeenAt\n }\n`;\n\ninterface SessionListItemProps {\n sessionKey: SessionListItem_session$key;\n hideLastSeenAt?: boolean;\n}\n\nexport const Container = styled.div`\n display: flex;\n position: relative;\n padding: 0.5em 0;\n overflow: hidden;\n\n &:not(:last-of-type) {\n border-bottom: 1px solid ${(p) => clr(p.theme.listItemColorBorder)};\n }\n\n @media (hover: hover) {\n // Hide actions by default\n & > nav {\n opacity: 0;\n }\n\n // Display actions either on focus, or on hover\n &:hover,\n &:focus-within {\n & > nav {\n opacity: 1;\n }\n }\n }\n\n ${horizontalPaddingStyles()};\n`;\n\nconst Info = styled.div`\n font-size: ${(p) => p.theme.sizes.small}em;\n ${ellipsisStyles};\n`;\n\nexport const Content = styled.div`\n flex: 1;\n overflow: hidden;\n`;\n\nconst Title = styled(Info)`\n font-weight: 500;\n`;\n\nconst LastSeen = styled(Info)`\n color: ${(p) => clr(p.theme.inputColorPlaceholder)};\n`;\n\nconst hasSwipeStyles = (p) =>\n p.hasSwipe &&\n css`\n transform: translateX(100%);\n ${transitionStyles('transform')(p)};\n `;\n\nconst openedStyles = (p) =>\n p.opened &&\n css`\n transform: translateX(0);\n `;\n\ninterface ActionsProps {\n hasSwipe: boolean;\n opened: boolean;\n}\nconst Actions = styled(\n 'nav',\n omitEmotionProps('hasSwipe', 'opened')\n)<ActionsProps>`\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n\n display: flex;\n align-items: center;\n\n background: linear-gradient(\n to right,\n ${(p) => clr([...p.theme.colorBg.slice(0, 3), 0] as Color)},\n ${(p) => clr(p.theme.colorBg)}\n ${(p) => p.theme.listItemActionsPaddingLeft}em\n );\n\n ${hasSwipeStyles};\n ${openedStyles};\n ${horizontalPaddingStyles('right')};\n`;\n\nexport const IconContainer = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 0.6em;\n`;\n\ninterface IconProps {\n bgColor: string;\n}\nexport const Icon = styled('div', omitEmotionProps('bgColor'))<IconProps>`\n font-size: 1.4em;\n width: 1.3em;\n height: 1.3em;\n\n svg {\n height: 1.3em;\n }\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n border-radius: ${(p) => p.theme.borderRadius}em;\n background-color: ${(p) => p.bgColor};\n color: hsl(0, 0%, 100%);\n`;\n\nconst nameVersionToString = (\n name: string | null,\n version: string | null\n): string | null => {\n if (!name) return null;\n return `${name}${version ? ` ${version}` : ''}`;\n};\n\nconst mergeInfo = (...args: Array<string | null>): string | null =>\n args.filter((item) => item !== null).join(', ') || null;\n\nconst SessionListItem: React.FC<SessionListItemProps> = ({\n sessionKey,\n hideLastSeenAt,\n}) => {\n const session = useFragment(sessionListItemFragment, sessionKey);\n const { t, i18n } = useTranslation('profile');\n const touchDevice = useMemo(() => isTouchDevice(), []);\n const { opened, handlers } = useSwipe();\n\n const browser = useMemo(\n () => nameVersionToString(session.browserName, session.browserVersion),\n [session.browserName, session.browserVersion]\n );\n\n const os = useMemo(\n () => nameVersionToString(session.osName, session.osVersion),\n [session.osName, session.osVersion]\n );\n\n const deviceBrandModel = useMemo(() => {\n const arr = [session.deviceBrand, session.deviceModel];\n // Include the manufacturer name only if it does not equal to the brand name.\n // For example, it allows to avoid \"Apple Apple iPhone 6\".\n if (session.deviceManufacturer !== session.deviceBrand) {\n arr.unshift(session.deviceManufacturer);\n }\n return arr.filter((item) => item !== null).join(' ') || null;\n }, [session.deviceBrand, session.deviceManufacturer, session.deviceModel]);\n\n const title = useMemo(() => {\n let deviceType = (session.deviceType || 'unknown').toLowerCase();\n if (browser) deviceType = 'browser';\n return `${\n t('profile:sessions.deviceType', { returnObjects: true })[deviceType]\n }${session.deviceName ? ` ${session.deviceName}` : ''}`;\n }, [browser, session.deviceName, session.deviceType, t]);\n\n const deviceInfo = useMemo(\n () =>\n session.isApp ? mergeInfo(deviceBrandModel, os) : mergeInfo(browser, os),\n [browser, deviceBrandModel, os, session.isApp]\n );\n\n const ip = useMemo(() => {\n if (!session.ip) return null;\n const location = mergeInfo(session.city, session.country);\n return `${session.ip}${location ? ` (${location})` : ''}`;\n }, [session.city, session.country, session.ip]);\n\n const lastSeen = useMemo(() => {\n const lsa = getLastSeen(session.lastSeenAt);\n if (!lsa) {\n return `${t('profile:sessions.lastSeenOn')} ${formatDate(\n session.lastSeenAt,\n t,\n i18n.language\n )}`;\n }\n return `${t('profile:sessions.lastSeen')} ${lsa[0]} ${pluralForms({\n language: i18n.language,\n forms: t(`profile:sessions.${lsa[1]}`, { returnObjects: true }),\n number: lsa[0],\n })} ${t('profile:sessions.ago')}`;\n }, [i18n.language, session.lastSeenAt, t]);\n\n const [iconComponent, iconColor] = useMemo(() => {\n if (browser) return [<BrowserIcon />, 'hsl(30, 60%, 50%)'];\n if (session.isApp) {\n if (session.osName === 'iOS' || session.osName === 'iPhone OS') {\n return [<AppleIcon />, 'hsl(0, 0%, 50%)'];\n }\n if (session.osName === 'Android')\n return [<AndroidIcon />, 'hsl(150, 60%, 50%)'];\n }\n return [<UnknownDeviceIcon />, 'hsl(5, 60%, 50%)'];\n }, [browser, session.isApp, session.osName]);\n\n const [commitDestroySession, loadingDestroySession] =\n useMutation<SessionListItemDestroySessionMutation>(graphql`\n mutation SessionListItemDestroySessionMutation(\n $input: DestroySessionInput!\n ) {\n destroySession(input: $input) {\n ok\n }\n }\n `);\n\n const destroySession = useCallback(() => {\n commitDestroySession({\n variables: {\n input: {\n id: session.id,\n },\n },\n updater: (store) => {\n const record = store.get('client:root');\n if (!record) return;\n\n const sessionRecords = record.getLinkedRecords('sessions');\n if (!sessionRecords) return;\n\n record.setLinkedRecords(\n sessionRecords.filter((item) => item.getDataID() !== session.id),\n 'sessions'\n );\n },\n onError: (error) => {\n message.error(error.message);\n },\n onCompleted: () => {\n message.success(t('profile:sessions.destroyed'));\n },\n });\n }, [commitDestroySession, session.id, t]);\n\n return (\n <Container {...handlers}>\n <IconContainer>\n <Icon bgColor={iconColor}>{iconComponent}</Icon>\n </IconContainer>\n\n <Content>\n <Title>{title}</Title>\n {deviceInfo && <Info>{deviceInfo}</Info>}\n {ip && <Info>{ip}</Info>}\n {!hideLastSeenAt && <LastSeen>{lastSeen}</LastSeen>}\n </Content>\n\n <Actions hasSwipe={touchDevice} opened={opened}>\n <Button\n type='ghost'\n wide='never'\n size='small'\n loading={loadingDestroySession}\n onClick={destroySession}\n >\n <SignOut />\n </Button>\n </Actions>\n </Container>\n );\n};\n\nexport default SessionListItem;\n"],"file":"SessionListItem.js"}
@@ -35,20 +35,10 @@ fragment SessionListItem_session on SessionPayload {
35
35
 
36
36
  fragment SessionList_sessions on Query {
37
37
  sessions {
38
- edges {
39
- node {
40
- id
41
- current
42
- lastSeenAt
43
- ...SessionListItem_session
44
- __typename
45
- }
46
- cursor
47
- }
48
- pageInfo {
49
- endCursor
50
- hasNextPage
51
- }
38
+ id
39
+ current
40
+ lastSeenAt
41
+ ...SessionListItem_session
52
42
  }
53
43
  }
54
44
  */
@@ -74,176 +64,117 @@ var node = {
74
64
  "selections": [{
75
65
  "alias": null,
76
66
  "args": null,
77
- "concreteType": "SessionPayloadConnection",
67
+ "concreteType": "SessionPayload",
78
68
  "kind": "LinkedField",
79
69
  "name": "sessions",
80
- "plural": false,
70
+ "plural": true,
81
71
  "selections": [{
82
72
  "alias": null,
83
73
  "args": null,
84
- "concreteType": "SessionPayloadEdge",
85
- "kind": "LinkedField",
86
- "name": "edges",
87
- "plural": true,
88
- "selections": [{
89
- "alias": null,
90
- "args": null,
91
- "concreteType": "SessionPayload",
92
- "kind": "LinkedField",
93
- "name": "node",
94
- "plural": false,
95
- "selections": [{
96
- "alias": null,
97
- "args": null,
98
- "kind": "ScalarField",
99
- "name": "id",
100
- "storageKey": null
101
- }, {
102
- "alias": null,
103
- "args": null,
104
- "kind": "ScalarField",
105
- "name": "current",
106
- "storageKey": null
107
- }, {
108
- "alias": null,
109
- "args": null,
110
- "kind": "ScalarField",
111
- "name": "lastSeenAt",
112
- "storageKey": null
113
- }, {
114
- "alias": null,
115
- "args": null,
116
- "kind": "ScalarField",
117
- "name": "isApp",
118
- "storageKey": null
119
- }, {
120
- "alias": null,
121
- "args": null,
122
- "kind": "ScalarField",
123
- "name": "browserName",
124
- "storageKey": null
125
- }, {
126
- "alias": null,
127
- "args": null,
128
- "kind": "ScalarField",
129
- "name": "browserVersion",
130
- "storageKey": null
131
- }, {
132
- "alias": null,
133
- "args": null,
134
- "kind": "ScalarField",
135
- "name": "osName",
136
- "storageKey": null
137
- }, {
138
- "alias": null,
139
- "args": null,
140
- "kind": "ScalarField",
141
- "name": "osVersion",
142
- "storageKey": null
143
- }, {
144
- "alias": null,
145
- "args": null,
146
- "kind": "ScalarField",
147
- "name": "deviceType",
148
- "storageKey": null
149
- }, {
150
- "alias": null,
151
- "args": null,
152
- "kind": "ScalarField",
153
- "name": "deviceName",
154
- "storageKey": null
155
- }, {
156
- "alias": null,
157
- "args": null,
158
- "kind": "ScalarField",
159
- "name": "deviceManufacturer",
160
- "storageKey": null
161
- }, {
162
- "alias": null,
163
- "args": null,
164
- "kind": "ScalarField",
165
- "name": "deviceBrand",
166
- "storageKey": null
167
- }, {
168
- "alias": null,
169
- "args": null,
170
- "kind": "ScalarField",
171
- "name": "deviceModel",
172
- "storageKey": null
173
- }, {
174
- "alias": null,
175
- "args": null,
176
- "kind": "ScalarField",
177
- "name": "ip",
178
- "storageKey": null
179
- }, {
180
- "alias": null,
181
- "args": null,
182
- "kind": "ScalarField",
183
- "name": "country",
184
- "storageKey": null
185
- }, {
186
- "alias": null,
187
- "args": null,
188
- "kind": "ScalarField",
189
- "name": "city",
190
- "storageKey": null
191
- }, {
192
- "alias": null,
193
- "args": null,
194
- "kind": "ScalarField",
195
- "name": "__typename",
196
- "storageKey": null
197
- }],
198
- "storageKey": null
199
- }, {
200
- "alias": null,
201
- "args": null,
202
- "kind": "ScalarField",
203
- "name": "cursor",
204
- "storageKey": null
205
- }],
74
+ "kind": "ScalarField",
75
+ "name": "id",
206
76
  "storageKey": null
207
77
  }, {
208
78
  "alias": null,
209
79
  "args": null,
210
- "concreteType": "PageInfo",
211
- "kind": "LinkedField",
212
- "name": "pageInfo",
213
- "plural": false,
214
- "selections": [{
215
- "alias": null,
216
- "args": null,
217
- "kind": "ScalarField",
218
- "name": "endCursor",
219
- "storageKey": null
220
- }, {
221
- "alias": null,
222
- "args": null,
223
- "kind": "ScalarField",
224
- "name": "hasNextPage",
225
- "storageKey": null
226
- }],
80
+ "kind": "ScalarField",
81
+ "name": "current",
82
+ "storageKey": null
83
+ }, {
84
+ "alias": null,
85
+ "args": null,
86
+ "kind": "ScalarField",
87
+ "name": "lastSeenAt",
88
+ "storageKey": null
89
+ }, {
90
+ "alias": null,
91
+ "args": null,
92
+ "kind": "ScalarField",
93
+ "name": "isApp",
94
+ "storageKey": null
95
+ }, {
96
+ "alias": null,
97
+ "args": null,
98
+ "kind": "ScalarField",
99
+ "name": "browserName",
100
+ "storageKey": null
101
+ }, {
102
+ "alias": null,
103
+ "args": null,
104
+ "kind": "ScalarField",
105
+ "name": "browserVersion",
106
+ "storageKey": null
107
+ }, {
108
+ "alias": null,
109
+ "args": null,
110
+ "kind": "ScalarField",
111
+ "name": "osName",
112
+ "storageKey": null
113
+ }, {
114
+ "alias": null,
115
+ "args": null,
116
+ "kind": "ScalarField",
117
+ "name": "osVersion",
118
+ "storageKey": null
119
+ }, {
120
+ "alias": null,
121
+ "args": null,
122
+ "kind": "ScalarField",
123
+ "name": "deviceType",
124
+ "storageKey": null
125
+ }, {
126
+ "alias": null,
127
+ "args": null,
128
+ "kind": "ScalarField",
129
+ "name": "deviceName",
130
+ "storageKey": null
131
+ }, {
132
+ "alias": null,
133
+ "args": null,
134
+ "kind": "ScalarField",
135
+ "name": "deviceManufacturer",
136
+ "storageKey": null
137
+ }, {
138
+ "alias": null,
139
+ "args": null,
140
+ "kind": "ScalarField",
141
+ "name": "deviceBrand",
142
+ "storageKey": null
143
+ }, {
144
+ "alias": null,
145
+ "args": null,
146
+ "kind": "ScalarField",
147
+ "name": "deviceModel",
148
+ "storageKey": null
149
+ }, {
150
+ "alias": null,
151
+ "args": null,
152
+ "kind": "ScalarField",
153
+ "name": "ip",
154
+ "storageKey": null
155
+ }, {
156
+ "alias": null,
157
+ "args": null,
158
+ "kind": "ScalarField",
159
+ "name": "country",
160
+ "storageKey": null
161
+ }, {
162
+ "alias": null,
163
+ "args": null,
164
+ "kind": "ScalarField",
165
+ "name": "city",
227
166
  "storageKey": null
228
167
  }],
229
168
  "storageKey": null
230
- }, {
231
- "alias": null,
232
- "args": null,
233
- "filters": [],
234
- "handle": "connection",
235
- "key": "SessionList_sessions",
236
- "kind": "LinkedHandle",
237
- "name": "sessions"
238
169
  }]
239
170
  },
240
171
  "params": {
241
- "cacheID": "6f4db07ee743735ff7fca7e2a3473f24",
172
+ "cacheID": "cc7ef83584759c724bbad21b528477c2",
242
173
  "id": null,
243
174
  "metadata": {},
244
175
  "name": "SessionDrawerContentQuery",
245
176
  "operationKind": "query",
246
- "text": "query SessionDrawerContentQuery {\n ...SessionList_sessions\n}\n\nfragment SessionListItem_session on SessionPayload {\n id\n isApp\n browserName\n browserVersion\n osName\n osVersion\n deviceType\n deviceName\n deviceManufacturer\n deviceBrand\n deviceModel\n ip\n country\n city\n lastSeenAt\n}\n\nfragment SessionList_sessions on Query {\n sessions {\n edges {\n node {\n id\n current\n lastSeenAt\n ...SessionListItem_session\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n}\n"
177
+ "text": "query SessionDrawerContentQuery {\n ...SessionList_sessions\n}\n\nfragment SessionListItem_session on SessionPayload {\n id\n isApp\n browserName\n browserVersion\n osName\n osVersion\n deviceType\n deviceName\n deviceManufacturer\n deviceBrand\n deviceModel\n ip\n country\n city\n lastSeenAt\n}\n\nfragment SessionList_sessions on Query {\n sessions {\n id\n current\n lastSeenAt\n ...SessionListItem_session\n }\n}\n"
247
178
  }
248
179
  };
249
180
  node.hash = '1643ac6b9bd324d389dab9011e55b1ba';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/lib/components/session/__generated__/SessionDrawerContentQuery.graphql.ts"],"names":["node","hash"],"mappings":"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","sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type SessionDrawerContentQueryVariables = {};\nexport type SessionDrawerContentQueryResponse = {\n readonly \" $fragmentRefs\": FragmentRefs<\"SessionList_sessions\">;\n};\nexport type SessionDrawerContentQuery = {\n readonly response: SessionDrawerContentQueryResponse;\n readonly variables: SessionDrawerContentQueryVariables;\n};\n\n\n\n/*\nquery SessionDrawerContentQuery {\n ...SessionList_sessions\n}\n\nfragment SessionListItem_session on SessionPayload {\n id\n isApp\n browserName\n browserVersion\n osName\n osVersion\n deviceType\n deviceName\n deviceManufacturer\n deviceBrand\n deviceModel\n ip\n country\n city\n lastSeenAt\n}\n\nfragment SessionList_sessions on Query {\n sessions {\n edges {\n node {\n id\n current\n lastSeenAt\n ...SessionListItem_session\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n}\n*/\n\nconst node: ConcreteRequest = {\n \"fragment\": {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"SessionDrawerContentQuery\",\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"SessionList_sessions\"\n }\n ],\n \"type\": \"Query\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": [],\n \"kind\": \"Operation\",\n \"name\": \"SessionDrawerContentQuery\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"SessionPayloadConnection\",\n \"kind\": \"LinkedField\",\n \"name\": \"sessions\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"SessionPayloadEdge\",\n \"kind\": \"LinkedField\",\n \"name\": \"edges\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"SessionPayload\",\n \"kind\": \"LinkedField\",\n \"name\": \"node\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"current\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"lastSeenAt\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isApp\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"browserName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"browserVersion\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"osName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"osVersion\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deviceType\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deviceName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deviceManufacturer\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deviceBrand\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deviceModel\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"ip\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"country\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"city\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"__typename\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"cursor\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"PageInfo\",\n \"kind\": \"LinkedField\",\n \"name\": \"pageInfo\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"endCursor\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"hasNextPage\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"filters\": [],\n \"handle\": \"connection\",\n \"key\": \"SessionList_sessions\",\n \"kind\": \"LinkedHandle\",\n \"name\": \"sessions\"\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"6f4db07ee743735ff7fca7e2a3473f24\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"SessionDrawerContentQuery\",\n \"operationKind\": \"query\",\n \"text\": \"query SessionDrawerContentQuery {\\n ...SessionList_sessions\\n}\\n\\nfragment SessionListItem_session on SessionPayload {\\n id\\n isApp\\n browserName\\n browserVersion\\n osName\\n osVersion\\n deviceType\\n deviceName\\n deviceManufacturer\\n deviceBrand\\n deviceModel\\n ip\\n country\\n city\\n lastSeenAt\\n}\\n\\nfragment SessionList_sessions on Query {\\n sessions {\\n edges {\\n node {\\n id\\n current\\n lastSeenAt\\n ...SessionListItem_session\\n __typename\\n }\\n cursor\\n }\\n pageInfo {\\n endCursor\\n hasNextPage\\n }\\n }\\n}\\n\"\n }\n};\n(node as any).hash = '1643ac6b9bd324d389dab9011e55b1ba';\nexport default node;\n"],"file":"SessionDrawerContentQuery.graphql.js"}
1
+ {"version":3,"sources":["../../../../../src/lib/components/session/__generated__/SessionDrawerContentQuery.graphql.ts"],"names":["node","hash"],"mappings":"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","sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type SessionDrawerContentQueryVariables = {};\nexport type SessionDrawerContentQueryResponse = {\n readonly \" $fragmentRefs\": FragmentRefs<\"SessionList_sessions\">;\n};\nexport type SessionDrawerContentQuery = {\n readonly response: SessionDrawerContentQueryResponse;\n readonly variables: SessionDrawerContentQueryVariables;\n};\n\n\n\n/*\nquery SessionDrawerContentQuery {\n ...SessionList_sessions\n}\n\nfragment SessionListItem_session on SessionPayload {\n id\n isApp\n browserName\n browserVersion\n osName\n osVersion\n deviceType\n deviceName\n deviceManufacturer\n deviceBrand\n deviceModel\n ip\n country\n city\n lastSeenAt\n}\n\nfragment SessionList_sessions on Query {\n sessions {\n id\n current\n lastSeenAt\n ...SessionListItem_session\n }\n}\n*/\n\nconst node: ConcreteRequest = {\n \"fragment\": {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"SessionDrawerContentQuery\",\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"SessionList_sessions\"\n }\n ],\n \"type\": \"Query\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": [],\n \"kind\": \"Operation\",\n \"name\": \"SessionDrawerContentQuery\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"SessionPayload\",\n \"kind\": \"LinkedField\",\n \"name\": \"sessions\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"current\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"lastSeenAt\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isApp\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"browserName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"browserVersion\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"osName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"osVersion\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deviceType\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deviceName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deviceManufacturer\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deviceBrand\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deviceModel\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"ip\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"country\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"city\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"cc7ef83584759c724bbad21b528477c2\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"SessionDrawerContentQuery\",\n \"operationKind\": \"query\",\n \"text\": \"query SessionDrawerContentQuery {\\n ...SessionList_sessions\\n}\\n\\nfragment SessionListItem_session on SessionPayload {\\n id\\n isApp\\n browserName\\n browserVersion\\n osName\\n osVersion\\n deviceType\\n deviceName\\n deviceManufacturer\\n deviceBrand\\n deviceModel\\n ip\\n country\\n city\\n lastSeenAt\\n}\\n\\nfragment SessionList_sessions on Query {\\n sessions {\\n id\\n current\\n lastSeenAt\\n ...SessionListItem_session\\n }\\n}\\n\"\n }\n};\n(node as any).hash = '1643ac6b9bd324d389dab9011e55b1ba';\nexport default node;\n"],"file":"SessionDrawerContentQuery.graphql.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/lib/components/session/__generated__/SessionListItem_session.graphql.ts"],"names":["node","hash"],"mappings":";;;;;;;AAAA;;AACA;AACA;AA+BA,IAAMA,IAAoB,GAAG;AAC3B,yBAAuB,EADI;AAE3B,UAAQ,UAFmB;AAG3B,cAAY,IAHe;AAI3B,UAAQ,yBAJmB;AAK3B,gBAAc,CACZ;AACE,aAAS,IADX;AAEE,YAAQ,IAFV;AAGE,YAAQ,aAHV;AAIE,YAAQ,IAJV;AAKE,kBAAc;AALhB,GADY,EAQZ;AACE,aAAS,IADX;AAEE,YAAQ,IAFV;AAGE,YAAQ,aAHV;AAIE,YAAQ,OAJV;AAKE,kBAAc;AALhB,GARY,EAeZ;AACE,aAAS,IADX;AAEE,YAAQ,IAFV;AAGE,YAAQ,aAHV;AAIE,YAAQ,aAJV;AAKE,kBAAc;AALhB,GAfY,EAsBZ;AACE,aAAS,IADX;AAEE,YAAQ,IAFV;AAGE,YAAQ,aAHV;AAIE,YAAQ,gBAJV;AAKE,kBAAc;AALhB,GAtBY,EA6BZ;AACE,aAAS,IADX;AAEE,YAAQ,IAFV;AAGE,YAAQ,aAHV;AAIE,YAAQ,QAJV;AAKE,kBAAc;AALhB,GA7BY,EAoCZ;AACE,aAAS,IADX;AAEE,YAAQ,IAFV;AAGE,YAAQ,aAHV;AAIE,YAAQ,WAJV;AAKE,kBAAc;AALhB,GApCY,EA2CZ;AACE,aAAS,IADX;AAEE,YAAQ,IAFV;AAGE,YAAQ,aAHV;AAIE,YAAQ,YAJV;AAKE,kBAAc;AALhB,GA3CY,EAkDZ;AACE,aAAS,IADX;AAEE,YAAQ,IAFV;AAGE,YAAQ,aAHV;AAIE,YAAQ,YAJV;AAKE,kBAAc;AALhB,GAlDY,EAyDZ;AACE,aAAS,IADX;AAEE,YAAQ,IAFV;AAGE,YAAQ,aAHV;AAIE,YAAQ,oBAJV;AAKE,kBAAc;AALhB,GAzDY,EAgEZ;AACE,aAAS,IADX;AAEE,YAAQ,IAFV;AAGE,YAAQ,aAHV;AAIE,YAAQ,aAJV;AAKE,kBAAc;AALhB,GAhEY,EAuEZ;AACE,aAAS,IADX;AAEE,YAAQ,IAFV;AAGE,YAAQ,aAHV;AAIE,YAAQ,aAJV;AAKE,kBAAc;AALhB,GAvEY,EA8EZ;AACE,aAAS,IADX;AAEE,YAAQ,IAFV;AAGE,YAAQ,aAHV;AAIE,YAAQ,IAJV;AAKE,kBAAc;AALhB,GA9EY,EAqFZ;AACE,aAAS,IADX;AAEE,YAAQ,IAFV;AAGE,YAAQ,aAHV;AAIE,YAAQ,SAJV;AAKE,kBAAc;AALhB,GArFY,EA4FZ;AACE,aAAS,IADX;AAEE,YAAQ,IAFV;AAGE,YAAQ,aAHV;AAIE,YAAQ,MAJV;AAKE,kBAAc;AALhB,GA5FY,EAmGZ;AACE,aAAS,IADX;AAEE,YAAQ,IAFV;AAGE,YAAQ,aAHV;AAIE,YAAQ,YAJV;AAKE,kBAAc;AALhB,GAnGY,CALa;AAgH3B,UAAQ,gBAhHmB;AAiH3B,iBAAe;AAjHY,CAA7B;AAmHCA,IAAD,CAAcC,IAAd,GAAqB,kCAArB;eACeD,I","sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type SessionListItem_session = {\n readonly id: string;\n readonly isApp: boolean;\n readonly browserName: string | null;\n readonly browserVersion: string | null;\n readonly osName: string | null;\n readonly osVersion: string | null;\n readonly deviceType: string | null;\n readonly deviceName: string | null;\n readonly deviceManufacturer: string | null;\n readonly deviceBrand: string | null;\n readonly deviceModel: string | null;\n readonly ip: string | null;\n readonly country: string | null;\n readonly city: string | null;\n readonly lastSeenAt: string;\n readonly \" $refType\": \"SessionListItem_session\";\n};\nexport type SessionListItem_session$data = SessionListItem_session;\nexport type SessionListItem_session$key = {\n readonly \" $data\"?: SessionListItem_session$data;\n readonly \" $fragmentRefs\": FragmentRefs<\"SessionListItem_session\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"SessionListItem_session\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isApp\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"browserName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"browserVersion\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"osName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"osVersion\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deviceType\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deviceName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deviceManufacturer\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deviceBrand\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deviceModel\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"ip\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"country\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"city\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"lastSeenAt\",\n \"storageKey\": null\n }\n ],\n \"type\": \"SessionPayload\",\n \"abstractKey\": null\n};\n(node as any).hash = 'c73c341c5f6e75f7bef7402186ce242b';\nexport default node;\n"],"file":"SessionListItem_session.graphql.js"}
1
+ {"version":3,"sources":["../../../../../src/lib/components/session/__generated__/SessionListItem_session.graphql.ts"],"names":["node","hash"],"mappings":";;;;;;;AAAA;;AACA;AACA;AA+BA,IAAMA,IAAoB,GAAG;AAC3B,yBAAuB,EADI;AAE3B,UAAQ,UAFmB;AAG3B,cAAY,IAHe;AAI3B,UAAQ,yBAJmB;AAK3B,gBAAc,CACZ;AACE,aAAS,IADX;AAEE,YAAQ,IAFV;AAGE,YAAQ,aAHV;AAIE,YAAQ,IAJV;AAKE,kBAAc;AALhB,GADY,EAQZ;AACE,aAAS,IADX;AAEE,YAAQ,IAFV;AAGE,YAAQ,aAHV;AAIE,YAAQ,OAJV;AAKE,kBAAc;AALhB,GARY,EAeZ;AACE,aAAS,IADX;AAEE,YAAQ,IAFV;AAGE,YAAQ,aAHV;AAIE,YAAQ,aAJV;AAKE,kBAAc;AALhB,GAfY,EAsBZ;AACE,aAAS,IADX;AAEE,YAAQ,IAFV;AAGE,YAAQ,aAHV;AAIE,YAAQ,gBAJV;AAKE,kBAAc;AALhB,GAtBY,EA6BZ;AACE,aAAS,IADX;AAEE,YAAQ,IAFV;AAGE,YAAQ,aAHV;AAIE,YAAQ,QAJV;AAKE,kBAAc;AALhB,GA7BY,EAoCZ;AACE,aAAS,IADX;AAEE,YAAQ,IAFV;AAGE,YAAQ,aAHV;AAIE,YAAQ,WAJV;AAKE,kBAAc;AALhB,GApCY,EA2CZ;AACE,aAAS,IADX;AAEE,YAAQ,IAFV;AAGE,YAAQ,aAHV;AAIE,YAAQ,YAJV;AAKE,kBAAc;AALhB,GA3CY,EAkDZ;AACE,aAAS,IADX;AAEE,YAAQ,IAFV;AAGE,YAAQ,aAHV;AAIE,YAAQ,YAJV;AAKE,kBAAc;AALhB,GAlDY,EAyDZ;AACE,aAAS,IADX;AAEE,YAAQ,IAFV;AAGE,YAAQ,aAHV;AAIE,YAAQ,oBAJV;AAKE,kBAAc;AALhB,GAzDY,EAgEZ;AACE,aAAS,IADX;AAEE,YAAQ,IAFV;AAGE,YAAQ,aAHV;AAIE,YAAQ,aAJV;AAKE,kBAAc;AALhB,GAhEY,EAuEZ;AACE,aAAS,IADX;AAEE,YAAQ,IAFV;AAGE,YAAQ,aAHV;AAIE,YAAQ,aAJV;AAKE,kBAAc;AALhB,GAvEY,EA8EZ;AACE,aAAS,IADX;AAEE,YAAQ,IAFV;AAGE,YAAQ,aAHV;AAIE,YAAQ,IAJV;AAKE,kBAAc;AALhB,GA9EY,EAqFZ;AACE,aAAS,IADX;AAEE,YAAQ,IAFV;AAGE,YAAQ,aAHV;AAIE,YAAQ,SAJV;AAKE,kBAAc;AALhB,GArFY,EA4FZ;AACE,aAAS,IADX;AAEE,YAAQ,IAFV;AAGE,YAAQ,aAHV;AAIE,YAAQ,MAJV;AAKE,kBAAc;AALhB,GA5FY,EAmGZ;AACE,aAAS,IADX;AAEE,YAAQ,IAFV;AAGE,YAAQ,aAHV;AAIE,YAAQ,YAJV;AAKE,kBAAc;AALhB,GAnGY,CALa;AAgH3B,UAAQ,gBAhHmB;AAiH3B,iBAAe;AAjHY,CAA7B;AAmHCA,IAAD,CAAcC,IAAd,GAAqB,kCAArB;eACeD,I","sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type SessionListItem_session = {\n readonly id: string;\n readonly isApp: boolean;\n readonly browserName: string | null;\n readonly browserVersion: string | null;\n readonly osName: string | null;\n readonly osVersion: string | null;\n readonly deviceType: string | null;\n readonly deviceName: string | null;\n readonly deviceManufacturer: string | null;\n readonly deviceBrand: string | null;\n readonly deviceModel: string | null;\n readonly ip: string | null;\n readonly country: string | null;\n readonly city: string | null;\n readonly lastSeenAt: string;\n readonly \" $refType\": \"SessionListItem_session\";\n};\nexport type SessionListItem_session$data = SessionListItem_session;\nexport type SessionListItem_session$key = {\n readonly \" $data\"?: SessionListItem_session$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"SessionListItem_session\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"SessionListItem_session\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isApp\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"browserName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"browserVersion\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"osName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"osVersion\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deviceType\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deviceName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deviceManufacturer\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deviceBrand\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deviceModel\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"ip\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"country\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"city\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"lastSeenAt\",\n \"storageKey\": null\n }\n ],\n \"type\": \"SessionPayload\",\n \"abstractKey\": null\n};\n(node as any).hash = 'c73c341c5f6e75f7bef7402186ce242b';\nexport default node;\n"],"file":"SessionListItem_session.graphql.js"}
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ /* tslint:disable */
9
+
10
+ /* eslint-disable */
11
+ // @ts-nocheck
12
+
13
+ /*
14
+ query SessionListRefetchQuery {
15
+ ...SessionList_sessions
16
+ }
17
+
18
+ fragment SessionListItem_session on SessionPayload {
19
+ id
20
+ isApp
21
+ browserName
22
+ browserVersion
23
+ osName
24
+ osVersion
25
+ deviceType
26
+ deviceName
27
+ deviceManufacturer
28
+ deviceBrand
29
+ deviceModel
30
+ ip
31
+ country
32
+ city
33
+ lastSeenAt
34
+ }
35
+
36
+ fragment SessionList_sessions on Query {
37
+ sessions {
38
+ id
39
+ current
40
+ lastSeenAt
41
+ ...SessionListItem_session
42
+ }
43
+ }
44
+ */
45
+ var node = {
46
+ "fragment": {
47
+ "argumentDefinitions": [],
48
+ "kind": "Fragment",
49
+ "metadata": null,
50
+ "name": "SessionListRefetchQuery",
51
+ "selections": [{
52
+ "args": null,
53
+ "kind": "FragmentSpread",
54
+ "name": "SessionList_sessions"
55
+ }],
56
+ "type": "Query",
57
+ "abstractKey": null
58
+ },
59
+ "kind": "Request",
60
+ "operation": {
61
+ "argumentDefinitions": [],
62
+ "kind": "Operation",
63
+ "name": "SessionListRefetchQuery",
64
+ "selections": [{
65
+ "alias": null,
66
+ "args": null,
67
+ "concreteType": "SessionPayload",
68
+ "kind": "LinkedField",
69
+ "name": "sessions",
70
+ "plural": true,
71
+ "selections": [{
72
+ "alias": null,
73
+ "args": null,
74
+ "kind": "ScalarField",
75
+ "name": "id",
76
+ "storageKey": null
77
+ }, {
78
+ "alias": null,
79
+ "args": null,
80
+ "kind": "ScalarField",
81
+ "name": "current",
82
+ "storageKey": null
83
+ }, {
84
+ "alias": null,
85
+ "args": null,
86
+ "kind": "ScalarField",
87
+ "name": "lastSeenAt",
88
+ "storageKey": null
89
+ }, {
90
+ "alias": null,
91
+ "args": null,
92
+ "kind": "ScalarField",
93
+ "name": "isApp",
94
+ "storageKey": null
95
+ }, {
96
+ "alias": null,
97
+ "args": null,
98
+ "kind": "ScalarField",
99
+ "name": "browserName",
100
+ "storageKey": null
101
+ }, {
102
+ "alias": null,
103
+ "args": null,
104
+ "kind": "ScalarField",
105
+ "name": "browserVersion",
106
+ "storageKey": null
107
+ }, {
108
+ "alias": null,
109
+ "args": null,
110
+ "kind": "ScalarField",
111
+ "name": "osName",
112
+ "storageKey": null
113
+ }, {
114
+ "alias": null,
115
+ "args": null,
116
+ "kind": "ScalarField",
117
+ "name": "osVersion",
118
+ "storageKey": null
119
+ }, {
120
+ "alias": null,
121
+ "args": null,
122
+ "kind": "ScalarField",
123
+ "name": "deviceType",
124
+ "storageKey": null
125
+ }, {
126
+ "alias": null,
127
+ "args": null,
128
+ "kind": "ScalarField",
129
+ "name": "deviceName",
130
+ "storageKey": null
131
+ }, {
132
+ "alias": null,
133
+ "args": null,
134
+ "kind": "ScalarField",
135
+ "name": "deviceManufacturer",
136
+ "storageKey": null
137
+ }, {
138
+ "alias": null,
139
+ "args": null,
140
+ "kind": "ScalarField",
141
+ "name": "deviceBrand",
142
+ "storageKey": null
143
+ }, {
144
+ "alias": null,
145
+ "args": null,
146
+ "kind": "ScalarField",
147
+ "name": "deviceModel",
148
+ "storageKey": null
149
+ }, {
150
+ "alias": null,
151
+ "args": null,
152
+ "kind": "ScalarField",
153
+ "name": "ip",
154
+ "storageKey": null
155
+ }, {
156
+ "alias": null,
157
+ "args": null,
158
+ "kind": "ScalarField",
159
+ "name": "country",
160
+ "storageKey": null
161
+ }, {
162
+ "alias": null,
163
+ "args": null,
164
+ "kind": "ScalarField",
165
+ "name": "city",
166
+ "storageKey": null
167
+ }],
168
+ "storageKey": null
169
+ }]
170
+ },
171
+ "params": {
172
+ "cacheID": "45d3ade50bcabd53d852b5ba144cd756",
173
+ "id": null,
174
+ "metadata": {},
175
+ "name": "SessionListRefetchQuery",
176
+ "operationKind": "query",
177
+ "text": "query SessionListRefetchQuery {\n ...SessionList_sessions\n}\n\nfragment SessionListItem_session on SessionPayload {\n id\n isApp\n browserName\n browserVersion\n osName\n osVersion\n deviceType\n deviceName\n deviceManufacturer\n deviceBrand\n deviceModel\n ip\n country\n city\n lastSeenAt\n}\n\nfragment SessionList_sessions on Query {\n sessions {\n id\n current\n lastSeenAt\n ...SessionListItem_session\n }\n}\n"
178
+ }
179
+ };
180
+ node.hash = '1b21c937c7ba795f09bfcb5ada7d2510';
181
+ var _default = node;
182
+ exports.default = _default;
183
+ //# sourceMappingURL=SessionListRefetchQuery.graphql.js.map