Skip to content
16 changes: 11 additions & 5 deletions static/app/views/issueList/overview.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@ import {
DEFAULT_ISSUE_STREAM_SORT,
DEFAULT_QUERY,
FOR_REVIEW_QUERIES,
getStoredIssueSort,
setStoredIssueSort,
isForReviewQuery,
IssueSortOptions,
Query,
Expand Down Expand Up @@ -213,10 +215,13 @@ function IssueListOverviewInner({
const query = defined(location.query.query)
? (decodeScalar(location.query.query) ?? '')
: initialQuery;
const sort = decodeScalar(
location.query.sort,
DEFAULT_ISSUE_STREAM_SORT
) as IssueSortOptions;
const hasRecommendedSort = organization.features.includes(
'issue-stream-recommended-sort'
);
const defaultSort = hasRecommendedSort
? (getStoredIssueSort(organization.slug) ?? IssueSortOptions.RECOMMENDED)
: DEFAULT_ISSUE_STREAM_SORT;
const sort = decodeScalar(location.query.sort, defaultSort) as IssueSortOptions;

const getGroupStatsPeriod = useCallback((): string => {
const currentPeriod = decodeScalar(
Expand Down Expand Up @@ -248,7 +253,7 @@ function IssueListOverviewInner({
params.start = getUtcDateString(params.start);
}

if (sort !== DEFAULT_ISSUE_STREAM_SORT) {
if (sort !== IssueSortOptions.DATE) {
params.sort = sort;
}

Expand Down Expand Up @@ -690,6 +695,7 @@ function IssueListOverviewInner({
organization,
sort: newSort,
});
setStoredIssueSort(organization.slug, newSort as IssueSortOptions);
Comment thread
sentry[bot] marked this conversation as resolved.
Outdated
transitionTo({sort: newSort});
};

Expand Down
19 changes: 19 additions & 0 deletions static/app/views/issueList/utils.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import {t} from 'sentry/locale';
import type {Event} from 'sentry/types/event';
import type {Group} from 'sentry/types/group';
import type {Organization} from 'sentry/types/organization';
import {localStorageWrapper} from 'sentry/utils/localStorage';

export const DEFAULT_QUERY = 'is:unresolved issue.priority:[high, medium]';

Expand Down Expand Up @@ -85,6 +86,24 @@ export const FOR_REVIEW_QUERIES: string[] = [Query.FOR_REVIEW];
export const SAVED_SEARCHES_SIDEBAR_OPEN_LOCALSTORAGE_KEY =
'issue-stream-saved-searches-sidebar-open';

const ISSUE_STREAM_SORT_LOCALSTORAGE_KEY = 'issue-stream-sort';

function makeSortStorageKey(orgSlug: string): string {
return `${ISSUE_STREAM_SORT_LOCALSTORAGE_KEY}:${orgSlug}`;
}

export function getStoredIssueSort(orgSlug: string): IssueSortOptions | null {
const value = localStorageWrapper.getItem(makeSortStorageKey(orgSlug));
if (value && Object.values(IssueSortOptions).includes(value as IssueSortOptions)) {
return value as IssueSortOptions;
}
return null;
}

export function setStoredIssueSort(orgSlug: string, sort: IssueSortOptions): void {
localStorageWrapper.setItem(makeSortStorageKey(orgSlug), sort);
}

export function createIssueLink({
organization,
data,
Expand Down
Loading