promptIsDismissed.tsx 795 B

12345678910111213141516171819202122232425262728293031
  1. import moment from 'moment-timezone';
  2. import type {PromptData} from 'sentry/actionCreators/prompts';
  3. /**
  4. * Given a snoozed unix timestamp in seconds, returns the number of days since
  5. * the prompt was snoozed.
  6. *
  7. * @param snoozedTs Snoozed timestamp
  8. */
  9. function snoozedDays(snoozedTs: number) {
  10. const now = moment.utc();
  11. const snoozedOn = moment.unix(snoozedTs).utc();
  12. return now.diff(snoozedOn, 'days');
  13. }
  14. export const DEFAULT_SNOOZE_PROMPT_DAYS = 14;
  15. export const promptIsDismissed = (
  16. prompt: PromptData,
  17. daysToSnooze: number = DEFAULT_SNOOZE_PROMPT_DAYS
  18. ): boolean => {
  19. if (typeof prompt?.dismissedTime === 'number') {
  20. return true;
  21. }
  22. if (typeof prompt?.snoozedTime === 'number') {
  23. return snoozedDays(prompt.snoozedTime) < daysToSnooze;
  24. }
  25. return false;
  26. };