Page MenuHomePhabricator

D10891.id36424.diff
No OneTemporary

D10891.id36424.diff

diff --git a/lib/types/nav-types.js b/lib/types/nav-types.js
--- a/lib/types/nav-types.js
+++ b/lib/types/nav-types.js
@@ -1,7 +1,36 @@
// @flow
+import t from 'tcomb';
+import type { TEnums } from 'tcomb';
+
export type BaseNavInfo = {
+startDate: string,
+endDate: string,
...
};
+export type WebNavigationTab = 'calendar' | 'chat' | 'settings';
+export const webNavigationTabValidator: TEnums = t.enums.of([
+ 'calendar',
+ 'chat',
+ 'settings',
+]);
+export type WebLoginMethod = 'form' | 'qr-code';
+export const webLoginMethodValidator: TEnums = t.enums.of(['form', 'qr-code']);
+export type WebNavigationSettingsSection =
+ | 'account'
+ | 'friend-list'
+ | 'block-list'
+ | 'keyservers'
+ | 'danger-zone';
+export const webNavigationSettingsSectionValidator: TEnums = t.enums.of([
+ 'account',
+ 'friend-list',
+ 'block-list',
+ 'keyservers',
+ 'danger-zone',
+]);
+export type WebNavigationChatMode = 'view' | 'create';
+export const webNavigationChatModeValidator: TEnums = t.enums.of([
+ 'view',
+ 'create',
+]);
diff --git a/web/app-list/app-list-item.react.js b/web/app-list/app-list-item.react.js
--- a/web/app-list/app-list-item.react.js
+++ b/web/app-list/app-list-item.react.js
@@ -6,11 +6,11 @@
import SWMansionIcon, {
type Icon,
} from 'lib/components/SWMansionIcon.react.js';
+import type { WebNavigationTab } from 'lib/types/nav-types.js';
import css from './app-list-item.css';
import { useSelector } from '../redux/redux-utils.js';
import { navTabSelector } from '../selectors/nav-selectors.js';
-import type { WebNavigationTab } from '../types/nav-types.js';
type Props = {
+id: WebNavigationTab,
diff --git a/web/selectors/nav-selectors.js b/web/selectors/nav-selectors.js
--- a/web/selectors/nav-selectors.js
+++ b/web/selectors/nav-selectors.js
@@ -7,12 +7,12 @@
import { currentCalendarQuery } from 'lib/selectors/nav-selectors.js';
import type { CalendarQuery } from 'lib/types/entry-types.js';
import type { CalendarFilter } from 'lib/types/filter-types.js';
+import type {
+ WebNavigationSettingsSection,
+ WebNavigationTab,
+} from 'lib/types/nav-types.js';
import type { AppState } from '../redux/redux-setup.js';
-import {
- type WebNavigationTab,
- type WebNavigationSettingsSection,
-} from '../types/nav-types.js';
const dateExtractionRegex = /^([0-9]{4})-([0-9]{2})-[0-9]{2}$/;
diff --git a/web/settings/user-settings-list-item.react.js b/web/settings/user-settings-list-item.react.js
--- a/web/settings/user-settings-list-item.react.js
+++ b/web/settings/user-settings-list-item.react.js
@@ -3,10 +3,11 @@
import classNames from 'classnames';
import * as React from 'react';
+import type { WebNavigationSettingsSection } from 'lib/types/nav-types.js';
+
import css from './user-settings-list-item.css';
import { useSelector } from '../redux/redux-utils.js';
import { navSettingsSectionSelector } from '../selectors/nav-selectors.js';
-import type { WebNavigationSettingsSection } from '../types/nav-types.js';
type Props = {
+id: WebNavigationSettingsSection,
diff --git a/web/sidebar/community-drawer-item-community-handlers.react.js b/web/sidebar/community-drawer-item-community-handlers.react.js
--- a/web/sidebar/community-drawer-item-community-handlers.react.js
+++ b/web/sidebar/community-drawer-item-community-handlers.react.js
@@ -8,6 +8,7 @@
updateChatCommunityFilter,
} from 'lib/actions/community-actions.js';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
+import type { WebNavigationTab } from 'lib/types/nav-types.js';
import { useDispatch } from 'lib/utils/redux-utils.js';
import type { CommunityDrawerItemCommunityHandler } from './community-drawer-item-handler.react.js';
@@ -17,7 +18,6 @@
useOnClickThread,
useThreadIsActive,
} from '../selectors/thread-selectors.js';
-import type { WebNavigationTab } from '../types/nav-types.js';
export type HandlerProps = {
+setHandler: (handler: CommunityDrawerItemCommunityHandler) => void,
diff --git a/web/sidebar/community-drawer-item-handlers.react.js b/web/sidebar/community-drawer-item-handlers.react.js
--- a/web/sidebar/community-drawer-item-handlers.react.js
+++ b/web/sidebar/community-drawer-item-handlers.react.js
@@ -3,6 +3,7 @@
import * as React from 'react';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
+import type { WebNavigationTab } from 'lib/types/nav-types.js';
import type { CommunityDrawerItemHandler } from './community-drawer-item-handler.react.js';
import { useCommunityIsPickedCalendar } from '../selectors/calendar-selectors.js';
@@ -10,7 +11,6 @@
useOnClickThread,
useThreadIsActive,
} from '../selectors/thread-selectors.js';
-import type { WebNavigationTab } from '../types/nav-types.js';
export type HandlerProps = {
+setHandler: (handler: CommunityDrawerItemHandler) => void,
diff --git a/web/sidebar/community-drawer-item.react.js b/web/sidebar/community-drawer-item.react.js
--- a/web/sidebar/community-drawer-item.react.js
+++ b/web/sidebar/community-drawer-item.react.js
@@ -3,6 +3,7 @@
import classnames from 'classnames';
import * as React from 'react';
+import type { WebNavigationTab } from 'lib/types/nav-types.js';
import type { CommunityDrawerItemData } from 'lib/utils/drawer-utils.react.js';
import { useResolvedThreadInfo } from 'lib/utils/entity-helpers.js';
@@ -15,7 +16,6 @@
getExpandButton,
} from './community-drawer-utils.react.js';
import ThreadAvatar from '../avatars/thread-avatar.react.js';
-import type { WebNavigationTab } from '../types/nav-types.js';
export type DrawerItemProps = {
+itemData: CommunityDrawerItemData<string>,
diff --git a/web/sidebar/community-drawer-utils.react.js b/web/sidebar/community-drawer-utils.react.js
--- a/web/sidebar/community-drawer-utils.react.js
+++ b/web/sidebar/community-drawer-utils.react.js
@@ -3,13 +3,13 @@
import * as React from 'react';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
+import type { WebNavigationTab } from 'lib/types/nav-types.js';
import type { CommunityDrawerItemData } from 'lib/utils/drawer-utils.react';
import css from './community-drawer-item.css';
import CommunityDrawerItemChat from './community-drawer-item.react.js';
import { ExpandButton } from './expand-buttons.react.js';
import SubchannelsButton from './subchannels-button.react.js';
-import type { WebNavigationTab } from '../types/nav-types.js';
const indentation = 14;
const subchannelsButtonIndentation = 24;
diff --git a/web/types/nav-types.js b/web/types/nav-types.js
--- a/web/types/nav-types.js
+++ b/web/types/nav-types.js
@@ -5,35 +5,23 @@
import { threadInfoValidator } from 'lib/permissions/minimally-encoded-thread-permissions-validators.js';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import { type BaseNavInfo } from 'lib/types/nav-types.js';
+import {
+ type BaseNavInfo,
+ type WebLoginMethod,
+ type WebNavigationChatMode,
+ type WebNavigationSettingsSection,
+ type WebNavigationTab,
+ webLoginMethodValidator,
+ webNavigationChatModeValidator,
+ webNavigationSettingsSectionValidator,
+ webNavigationTabValidator,
+} from 'lib/types/nav-types.js';
import {
type AccountUserInfo,
accountUserInfoValidator,
} from 'lib/types/user-types.js';
import { tID, tShape } from 'lib/utils/validation-utils.js';
-export type WebNavigationTab = 'calendar' | 'chat' | 'settings';
-const webNavigationTabValidator = t.enums.of(['calendar', 'chat', 'settings']);
-export type WebLoginMethod = 'form' | 'qr-code';
-const webLoginMethodValidator = t.enums.of(['form', 'qr-code']);
-
-export type WebNavigationSettingsSection =
- | 'account'
- | 'friend-list'
- | 'block-list'
- | 'keyservers'
- | 'danger-zone';
-const webNavigationSettingsSectionValidator = t.enums.of([
- 'account',
- 'friend-list',
- 'block-list',
- 'keyservers',
- 'danger-zone',
-]);
-
-export type WebNavigationChatMode = 'view' | 'create';
-const webNavigationChatModeValidator = t.enums.of(['view', 'create']);
-
export type WebNavInfo = {
...$Exact<BaseNavInfo>,
+tab: WebNavigationTab,

File Metadata

Mime Type
text/plain
Expires
Sun, Oct 6, 11:43 AM (20 h, 38 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2249210
Default Alt Text
D10891.id36424.diff (8 KB)

Event Timeline