Changeset View
Changeset View
Standalone View
Standalone View
native/chat/settings/thread-settings.react.js
Show First 20 Lines • Show All 54 Lines • ▼ Show 20 Lines | |||||
import ThreadSettingsEditRelationship from './thread-settings-edit-relationship.react.js'; | import ThreadSettingsEditRelationship from './thread-settings-edit-relationship.react.js'; | ||||
import ThreadSettingsHomeNotifs from './thread-settings-home-notifs.react.js'; | import ThreadSettingsHomeNotifs from './thread-settings-home-notifs.react.js'; | ||||
import ThreadSettingsLeaveThread from './thread-settings-leave-thread.react.js'; | import ThreadSettingsLeaveThread from './thread-settings-leave-thread.react.js'; | ||||
import { | import { | ||||
ThreadSettingsSeeMore, | ThreadSettingsSeeMore, | ||||
ThreadSettingsAddMember, | ThreadSettingsAddMember, | ||||
ThreadSettingsAddSubchannel, | ThreadSettingsAddSubchannel, | ||||
} from './thread-settings-list-action.react.js'; | } from './thread-settings-list-action.react.js'; | ||||
import ThreadSettingsMediaGallery from './thread-settings-media-gallery.react.js'; | |||||
import ThreadSettingsMember from './thread-settings-member.react.js'; | import ThreadSettingsMember from './thread-settings-member.react.js'; | ||||
import ThreadSettingsName from './thread-settings-name.react.js'; | import ThreadSettingsName from './thread-settings-name.react.js'; | ||||
import ThreadSettingsParent from './thread-settings-parent.react.js'; | import ThreadSettingsParent from './thread-settings-parent.react.js'; | ||||
import ThreadSettingsPromoteSidebar from './thread-settings-promote-sidebar.react.js'; | import ThreadSettingsPromoteSidebar from './thread-settings-promote-sidebar.react.js'; | ||||
import ThreadSettingsPushNotifs from './thread-settings-push-notifs.react.js'; | import ThreadSettingsPushNotifs from './thread-settings-push-notifs.react.js'; | ||||
import ThreadSettingsVisibility from './thread-settings-visibility.react.js'; | import ThreadSettingsVisibility from './thread-settings-visibility.react.js'; | ||||
import ThreadAncestors from '../../components/thread-ancestors.react.js'; | import ThreadAncestors from '../../components/thread-ancestors.react.js'; | ||||
import { | import { | ||||
▲ Show 20 Lines • Show All 118 Lines • ▼ Show 20 Lines | | { | ||||
+verticalBounds: ?VerticalBounds, | +verticalBounds: ?VerticalBounds, | ||||
+threadSettingsRouteKey: string, | +threadSettingsRouteKey: string, | ||||
} | } | ||||
| { | | { | ||||
+itemType: 'addMember', | +itemType: 'addMember', | ||||
+key: string, | +key: string, | ||||
} | } | ||||
| { | | { | ||||
+itemType: 'mediaGallery', | |||||
+key: string, | |||||
+threadInfo: ThreadInfo, | |||||
} | |||||
| { | |||||
+itemType: 'promoteSidebar' | 'leaveThread' | 'deleteThread', | +itemType: 'promoteSidebar' | 'leaveThread' | 'deleteThread', | ||||
+key: string, | +key: string, | ||||
+threadInfo: ResolvedThreadInfo, | +threadInfo: ResolvedThreadInfo, | ||||
+navigate: ThreadSettingsNavigate, | +navigate: ThreadSettingsNavigate, | ||||
+buttonStyle: ViewStyle, | +buttonStyle: ViewStyle, | ||||
} | } | ||||
| { | | { | ||||
+itemType: 'editRelationship', | +itemType: 'editRelationship', | ||||
▲ Show 20 Lines • Show All 407 Lines • ▼ Show 20 Lines | ) => { | ||||
key: 'memberFooter', | key: 'memberFooter', | ||||
categoryType: 'unpadded', | categoryType: 'unpadded', | ||||
}); | }); | ||||
return listData; | return listData; | ||||
}, | }, | ||||
); | ); | ||||
mediaGalleryListDataSelector = createSelector( | |||||
(propsAndState: PropsAndState) => propsAndState.threadInfo, | |||||
(threadInfo: ThreadInfo) => { | |||||
const listData: ChatSettingsItem[] = []; | |||||
listData.push({ | |||||
itemType: 'header', | |||||
key: 'mediaGalleryHeader', | |||||
title: 'Media Gallery', | |||||
categoryType: 'outline', | |||||
}); | |||||
listData.push({ | |||||
itemType: 'mediaGallery', | |||||
key: 'mediaGallery', | |||||
threadInfo, | |||||
}); | |||||
listData.push({ | |||||
itemType: 'footer', | |||||
key: 'mediaGalleryFooter', | |||||
categoryType: 'outline', | |||||
}); | |||||
return listData; | |||||
}, | |||||
); | |||||
actionsListDataSelector = createSelector( | actionsListDataSelector = createSelector( | ||||
(propsAndState: PropsAndState) => propsAndState.threadInfo, | (propsAndState: PropsAndState) => propsAndState.threadInfo, | ||||
(propsAndState: PropsAndState) => propsAndState.parentThreadInfo, | (propsAndState: PropsAndState) => propsAndState.parentThreadInfo, | ||||
(propsAndState: PropsAndState) => propsAndState.navigation.navigate, | (propsAndState: PropsAndState) => propsAndState.navigation.navigate, | ||||
(propsAndState: PropsAndState) => propsAndState.styles, | (propsAndState: PropsAndState) => propsAndState.styles, | ||||
(propsAndState: PropsAndState) => propsAndState.userInfos, | (propsAndState: PropsAndState) => propsAndState.userInfos, | ||||
(propsAndState: PropsAndState) => propsAndState.viewerID, | (propsAndState: PropsAndState) => propsAndState.viewerID, | ||||
( | ( | ||||
▲ Show 20 Lines • Show All 103 Lines • ▼ Show 20 Lines | actionsListDataSelector = createSelector( | ||||
}, | }, | ||||
); | ); | ||||
listDataSelector = createSelector( | listDataSelector = createSelector( | ||||
this.threadBasicsListDataSelector, | this.threadBasicsListDataSelector, | ||||
this.subchannelsListDataSelector, | this.subchannelsListDataSelector, | ||||
this.sidebarsListDataSelector, | this.sidebarsListDataSelector, | ||||
this.threadMembersListDataSelector, | this.threadMembersListDataSelector, | ||||
this.mediaGalleryListDataSelector, | |||||
this.actionsListDataSelector, | this.actionsListDataSelector, | ||||
( | ( | ||||
threadBasicsListData: ChatSettingsItem[], | threadBasicsListData: ChatSettingsItem[], | ||||
subchannelsListData: ChatSettingsItem[], | subchannelsListData: ChatSettingsItem[], | ||||
sidebarsListData: ChatSettingsItem[], | sidebarsListData: ChatSettingsItem[], | ||||
threadMembersListData: ChatSettingsItem[], | threadMembersListData: ChatSettingsItem[], | ||||
mediaGalleryListData: ChatSettingsItem[], | |||||
actionsListData: ChatSettingsItem[], | actionsListData: ChatSettingsItem[], | ||||
) => [ | ) => [ | ||||
...threadBasicsListData, | ...threadBasicsListData, | ||||
...subchannelsListData, | ...subchannelsListData, | ||||
...sidebarsListData, | ...sidebarsListData, | ||||
...threadMembersListData, | ...threadMembersListData, | ||||
...mediaGalleryListData, | |||||
...actionsListData, | ...actionsListData, | ||||
], | ], | ||||
); | ); | ||||
get listData() { | get listData() { | ||||
return this.listDataSelector({ ...this.props, ...this.state }); | return this.listDataSelector({ ...this.props, ...this.state }); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 126 Lines • ▼ Show 20 Lines | if (item.itemType === 'header') { | ||||
firstListItem={item.firstListItem} | firstListItem={item.firstListItem} | ||||
lastListItem={item.lastListItem} | lastListItem={item.lastListItem} | ||||
verticalBounds={item.verticalBounds} | verticalBounds={item.verticalBounds} | ||||
threadSettingsRouteKey={item.threadSettingsRouteKey} | threadSettingsRouteKey={item.threadSettingsRouteKey} | ||||
/> | /> | ||||
); | ); | ||||
} else if (item.itemType === 'addMember') { | } else if (item.itemType === 'addMember') { | ||||
return <ThreadSettingsAddMember onPress={this.onPressAddMember} />; | return <ThreadSettingsAddMember onPress={this.onPressAddMember} />; | ||||
} else if (item.itemType === 'mediaGallery') { | |||||
return <ThreadSettingsMediaGallery />; | |||||
} else if (item.itemType === 'leaveThread') { | } else if (item.itemType === 'leaveThread') { | ||||
return ( | return ( | ||||
<ThreadSettingsLeaveThread | <ThreadSettingsLeaveThread | ||||
threadInfo={item.threadInfo} | threadInfo={item.threadInfo} | ||||
buttonStyle={item.buttonStyle} | buttonStyle={item.buttonStyle} | ||||
/> | /> | ||||
); | ); | ||||
} else if (item.itemType === 'deleteThread') { | } else if (item.itemType === 'deleteThread') { | ||||
▲ Show 20 Lines • Show All 235 Lines • Show Last 20 Lines |