diff --git a/native/chat/settings/thread-settings.react.js b/native/chat/settings/thread-settings.react.js --- a/native/chat/settings/thread-settings.react.js +++ b/native/chat/settings/thread-settings.react.js @@ -80,6 +80,7 @@ ThreadSettingsAddMember, ThreadSettingsAddSubchannel, } from './thread-settings-list-action.react'; +import ThreadSettingsMediaGallery from './thread-settings-media-gallery.react'; import ThreadSettingsMember from './thread-settings-member.react'; import ThreadSettingsName from './thread-settings-name.react'; import ThreadSettingsParent from './thread-settings-parent.react'; @@ -187,6 +188,11 @@ +itemType: 'addMember', +key: string, } + | { + +itemType: 'mediaGallery', + +key: string, + +threadInfo: ThreadInfo, + } | { +itemType: 'promoteSidebar' | 'leaveThread' | 'deleteThread', +key: string, @@ -611,6 +617,30 @@ }, ); + mediaGalleryListDataSelector = createSelector( + (propsAndState: PropsAndState) => propsAndState.threadInfo, + (threadInfo: ThreadInfo) => { + const listData: ChatSettingsItem[] = []; + + if (threadInfo.parentThreadID === '1') { + listData.push({ + itemType: 'header', + key: 'mediaGalleryHeader', + title: 'Media Gallery', + categoryType: 'outline', + }); + + listData.push({ + itemType: 'mediaGallery', + key: 'mediaGallery', + threadInfo, + }); + } + + return listData; + }, + ); + actionsListDataSelector = createSelector( (propsAndState: PropsAndState) => propsAndState.threadInfo, (propsAndState: PropsAndState) => propsAndState.parentThreadInfo, @@ -731,18 +761,21 @@ this.subchannelsListDataSelector, this.sidebarsListDataSelector, this.threadMembersListDataSelector, + this.mediaGalleryListDataSelector, this.actionsListDataSelector, ( threadBasicsListData: ChatSettingsItem[], subchannelsListData: ChatSettingsItem[], sidebarsListData: ChatSettingsItem[], threadMembersListData: ChatSettingsItem[], + mediaGalleryListData: ChatSettingsItem[], actionsListData: ChatSettingsItem[], ) => [ ...threadBasicsListData, ...subchannelsListData, ...sidebarsListData, ...threadMembersListData, + ...mediaGalleryListData, ...actionsListData, ], ); @@ -885,6 +918,8 @@ ); } else if (item.itemType === 'addMember') { return ; + } else if (item.itemType === 'mediaGallery') { + return ; } else if (item.itemType === 'leaveThread') { return (