Skip to content

Commit

Permalink
Autoplay the hidden stories section
Browse files Browse the repository at this point in the history
  • Loading branch information
josh-signal committed Sep 22, 2022
1 parent 7edb9ed commit 94ef800
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 5 deletions.
1 change: 1 addition & 0 deletions ts/components/StoryViewer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -326,6 +326,7 @@ export const StoryViewer = ({

const canFreelyNavigateStories =
storyViewMode === StoryViewModeType.All ||
storyViewMode === StoryViewModeType.Hidden ||
storyViewMode === StoryViewModeType.Unread;

const canNavigateLeft =
Expand Down
25 changes: 21 additions & 4 deletions ts/state/ducks/stories.ts
Original file line number Diff line number Diff line change
Expand Up @@ -814,16 +814,29 @@ const viewUserStories: ViewUserStoriesActionCreatorType = ({

const story = storiesByConversationId[currentIndex];

const hiddenConversationIds = new Set(
getHideStoryConversationIds(getState())
);

let inferredStoryViewMode: StoryViewModeType;
if (storyViewMode) {
inferredStoryViewMode = storyViewMode;
} else if (hiddenConversationIds.has(conversationId)) {
inferredStoryViewMode = StoryViewModeType.Hidden;
} else if (hasUnread) {
inferredStoryViewMode = StoryViewModeType.Unread;
} else {
inferredStoryViewMode = StoryViewModeType.All;
}

dispatch({
type: VIEW_STORY,
payload: {
currentIndex,
messageId: story.messageId,
numStories,
shouldShowDetailsModal,
storyViewMode:
storyViewMode ||
(hasUnread ? StoryViewModeType.Unread : StoryViewModeType.All),
storyViewMode: inferredStoryViewMode,
},
});
};
Expand Down Expand Up @@ -1008,7 +1021,11 @@ const viewStory: ViewStoryActionCreatorType = (
}
}

const conversationStories = getStories(state).stories;
const storiesSelectorState = getStories(state);
const conversationStories =
storyViewMode === StoryViewModeType.Hidden
? storiesSelectorState.hiddenStories
: storiesSelectorState.stories;
const conversationStoryIndex = conversationStories.findIndex(
item => item.conversationId === story.conversationId
);
Expand Down
4 changes: 3 additions & 1 deletion ts/state/selectors/stories.ts
Original file line number Diff line number Diff line change
Expand Up @@ -405,7 +405,9 @@ export const getStories = createSelector(
});

return {
hiddenStories: Array.from(hiddenStoriesById.values()),
hiddenStories: Array.from(hiddenStoriesById.values()).sort(
sortByRecencyAndUnread
),
myStories: Array.from(myStoriesById.values()).sort(sortMyStories),
stories: Array.from(storiesById.values()).sort(sortByRecencyAndUnread),
};
Expand Down
1 change: 1 addition & 0 deletions ts/types/Stories.ts
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@ export enum StoryViewDirectionType {
// User = All of a user's stories
export enum StoryViewModeType {
All = 'All',
Hidden = 'Hidden',
Single = 'Single',
Unread = 'Unread',
User = 'User',
Expand Down

0 comments on commit 94ef800

Please sign in to comment.