diff --git a/static/app/components/nav/issueViews/issueViewAddViewButton.tsx b/static/app/components/nav/issueViews/issueViewAddViewButton.tsx
index 174c895ea72e75..07da90aecb65a3 100644
--- a/static/app/components/nav/issueViews/issueViewAddViewButton.tsx
+++ b/static/app/components/nav/issueViews/issueViewAddViewButton.tsx
@@ -1,13 +1,11 @@
-import {Fragment, useState} from 'react';
-import {css} from '@emotion/react';
+import {useState} from 'react';
import styled from '@emotion/styled';
-import {motion} from 'framer-motion';
import {Button} from 'sentry/components/core/button';
import LoadingIndicator from 'sentry/components/loadingIndicator';
import {useNavContext} from 'sentry/components/nav/context';
import useDefaultProject from 'sentry/components/nav/issueViews/useDefaultProject';
-import {NavLayout} from 'sentry/components/nav/types';
+import type {NavLayout} from 'sentry/components/nav/types';
import {IconAdd} from 'sentry/icons';
import {t} from 'sentry/locale';
import {space} from 'sentry/styles/space';
@@ -70,64 +68,35 @@ export function IssueViewAddViewButton({baseUrl}: {baseUrl: string}) {
};
return (
-
-
- {isLoading ? (
-
+
) : (
-
-
- {t('Add View')}
-
- )}
-
-
+
+ )
+ }
+ />
);
}
-const AddViewButton = styled(Button)<{layout: NavLayout}>`
- display: flex;
- align-items: center;
- justify-content: center;
- padding: ${space(0.5)};
-
- width: 100%;
- position: relative;
- height: 34px;
- color: ${p => p.theme.textColor};
- font-size: ${p => p.theme.fontSizeMedium};
- font-weight: ${p => p.theme.fontWeightNormal};
- line-height: 177.75%;
- border-radius: ${p => p.theme.borderRadius};
-
- &:hover {
- color: inherit;
- }
-
- [data-isl] {
- transform: translate(0, 0);
- top: 1px;
- bottom: 1px;
- right: 0;
- left: 0;
- width: initial;
- height: initial;
- }
-
- ${p =>
- p.layout === NavLayout.MOBILE &&
- css`
- padding: 0 ${space(1.5)} 0 48px;
- border-radius: 0;
- `}
+const StyledLoadingIndicator = styled(LoadingIndicator)`
+ width: 14px;
+ height: 14px !important;
+ margin: 0 !important;
`;
-const StyledIconAdd = styled(IconAdd)`
- margin-right: 4px;
+const AddViewButton = styled(Button)<{layout: NavLayout}>`
+ padding: ${space(0.5)};
+ /* margin-right: -${space(0.5)}; */
`;
diff --git a/static/app/components/nav/issueViews/issueViewNavItemContent.tsx b/static/app/components/nav/issueViews/issueViewNavItemContent.tsx
index 2878596565db9c..4db5e88b00f99b 100644
--- a/static/app/components/nav/issueViews/issueViewNavItemContent.tsx
+++ b/static/app/components/nav/issueViews/issueViewNavItemContent.tsx
@@ -130,6 +130,8 @@ export function IssueViewNavItemContent({
const {startInteraction, endInteraction, isInteractingRef} = useNavContext();
+ const scrollPosition = window.scrollY || document.documentElement.scrollTop;
+
return (
`
position: relative;
- background-color: ${p => p.theme.translucentSurface200};
+ background-color: ${p => (p.grabbing ? p.theme.translucentSurface200 : 'transparent')};
border-radius: ${p => p.theme.borderRadius};
`;
diff --git a/static/app/components/nav/issueViews/issueViewNavItems.tsx b/static/app/components/nav/issueViews/issueViewNavItems.tsx
index 8cdfcaf0a4bd69..2c231ae12c4f2c 100644
--- a/static/app/components/nav/issueViews/issueViewNavItems.tsx
+++ b/static/app/components/nav/issueViews/issueViewNavItems.tsx
@@ -1,11 +1,14 @@
import {useCallback, useEffect, useMemo, useState} from 'react';
-import {AnimatePresence, Reorder} from 'framer-motion';
+import styled from '@emotion/styled';
+import {Reorder} from 'framer-motion';
import debounce from 'lodash/debounce';
import isEqual from 'lodash/isEqual';
import {IssueViewAddViewButton} from 'sentry/components/nav/issueViews/issueViewAddViewButton';
import {IssueViewNavItemContent} from 'sentry/components/nav/issueViews/issueViewNavItemContent';
+import {SecondaryNav} from 'sentry/components/nav/secondary';
import {normalizeDateTimeParams} from 'sentry/components/organizations/pageFilters/parse';
+import {t} from 'sentry/locale';
import {trackAnalytics} from 'sentry/utils/analytics';
import {setApiQueryData, useQueryClient} from 'sentry/utils/queryClient';
import normalizeUrl from 'sentry/utils/url/normalizeUrl';
@@ -256,17 +259,25 @@ export function IssueViewNavItems({
);
return (
- setViews(newOrder)}
- initial={false}
- ref={sectionRef}
+
+ {t('Starred Views')}
+
+
+ }
>
- {views.map(view => (
-
+ setViews(newOrder)}
+ initial={false}
+ ref={sectionRef}
+ >
+ {views.map(view => (
-
- ))}
-
-
+ ))}
+
+
);
}
@@ -299,3 +309,9 @@ export const constructViewLink = (baseUrl: string, view: IssueView) => {
},
});
};
+
+const TitleWrapper = styled('div')`
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+`;
diff --git a/static/app/views/issues/navigation.tsx b/static/app/views/issues/navigation.tsx
index 516b37347659a2..c61ae91ec128ea 100644
--- a/static/app/views/issues/navigation.tsx
+++ b/static/app/views/issues/navigation.tsx
@@ -61,41 +61,39 @@ export function IssueNavigation({children}: IssuesWrapperProps) {
{groupSearchViews && (
-
- {
- const tabId = id ?? `default${index.toString()}`;
+ {
+ const tabId = id ?? `default${index.toString()}`;
- return {
- id: tabId,
- key: tabId,
- label: name,
- query: viewQuery,
- querySort: viewQuerySort,
- environments: viewEnvironments,
- projects: isAllProjects ? [-1] : viewProjects,
- timeFilters: viewTimeFilters,
- isCommitted: true,
- };
- }
- )}
- sectionRef={sectionRef}
- baseUrl={baseUrl}
- />
-
+ return {
+ id: tabId,
+ key: tabId,
+ label: name,
+ query: viewQuery,
+ querySort: viewQuerySort,
+ environments: viewEnvironments,
+ projects: isAllProjects ? [-1] : viewProjects,
+ timeFilters: viewTimeFilters,
+ isCommitted: true,
+ };
+ }
+ )}
+ sectionRef={sectionRef}
+ baseUrl={baseUrl}
+ />
)}