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} + /> )}