Skip to content

Instantly share code, notes, and snippets.

@lushiyun
Last active September 26, 2020 22:14
Show Gist options
  • Select an option

  • Save lushiyun/6829e63a43b0e351dc1d38d317745458 to your computer and use it in GitHub Desktop.

Select an option

Save lushiyun/6829e63a43b0e351dc1d38d317745458 to your computer and use it in GitHub Desktop.

Revisions

  1. lushiyun revised this gist Sep 26, 2020. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions action-cable-unread-messages-selector.js
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,7 @@
    // src/features/messages/messagesSlice.js

    ... // omitted other imports
    import { selectTeamById } from '../teams/teamsSlice'
    import { isAfter, parseISO, subYears } from 'date-fns'

    export const selectUnreadMessages = createSelector(
  2. lushiyun revised this gist Sep 26, 2020. 1 changed file with 0 additions and 1 deletion.
    1 change: 0 additions & 1 deletion action-cable-unread-messages-selector.js
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,6 @@
    // src/features/messages/messagesSlice.js

    ... // omitted other imports
    import { selectMessagesByTeam } from './messagesSlice'
    import { isAfter, parseISO, subYears } from 'date-fns'

    export const selectUnreadMessages = createSelector(
  3. lushiyun revised this gist Sep 26, 2020. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions action-cable-unread-messages-selector.js
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,7 @@
    // src/features/messages/messagesSlice.js

    ... // omitted other imports
    import { selectMessagesByTeam } from './messagesSlice'
    import { isAfter, parseISO, subYears } from 'date-fns'

    export const selectUnreadMessages = createSelector(
  4. lushiyun created this gist Sep 26, 2020.
    14 changes: 14 additions & 0 deletions action-cable-unread-messages-selector.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,14 @@
    // src/features/messages/messagesSlice.js

    ... // omitted other imports
    import { isAfter, parseISO, subYears } from 'date-fns'

    export const selectUnreadMessages = createSelector(
    [selectMessagesByTeam, selectTeamById],
    (messages, team) => {
    const lastReadAt = parseISO(team.lastReadAt) || subYears(Date.now(), 1)
    return messages.filter((message) =>
    isAfter(parseISO(message.created_at), lastReadAt)
    )
    }
    )