Skip to content

Commit

Permalink
ref(issue-views): Delete all PF suffixes, remove pagefilter flag (#85685
Browse files Browse the repository at this point in the history
)

This PR gets rid of all of those stupid "PF" suffixes in the components
and filenames. Also gets rid of the 'issue-view-page-filter' flag
entirely in favor of the 'issue-stream-custom-views' flag.
  • Loading branch information
MichaelSun48 authored Feb 21, 2025
1 parent 05ca98c commit d8d141a
Show file tree
Hide file tree
Showing 16 changed files with 171 additions and 186 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,14 @@ import {useDimensionsMultiple} from 'sentry/utils/useDimensionsMultiple';
import {useNavigate} from 'sentry/utils/useNavigate';
import useOrganization from 'sentry/utils/useOrganization';
import {
IssueViewsPFContext,
IssueViewsContext,
TEMPORARY_TAB_KEY,
} from 'sentry/views/issueList/issueViewsPF/issueViewsPF';
} from 'sentry/views/issueList/issueViews/issueViews';

import type {DraggableTabListItemProps} from './item';
import {Item} from './item';

interface BaseDraggableTabListProps extends DraggableTabListPFProps {
interface BaseDraggableTabListProps extends DraggableTabListProps {
items: DraggableTabListItemProps[];
}

Expand Down Expand Up @@ -278,7 +278,7 @@ function BaseDraggableTabList({
}: BaseDraggableTabListProps) {
const navigate = useNavigate();
const [hoveringKey, setHoveringKey] = useState<Key | null>(null);
const {rootProps, setTabListState} = useContext(IssueViewsPFContext);
const {rootProps, setTabListState} = useContext(IssueViewsContext);
const organization = useOrganization();
const {
value,
Expand Down Expand Up @@ -403,7 +403,7 @@ function BaseDraggableTabList({

const collectionFactory = (nodes: Iterable<Node<any>>) => new ListCollection(nodes);

export interface DraggableTabListPFProps
export interface DraggableTabListProps
extends AriaTabListOptions<DraggableTabListItemProps>,
TabListStateOptions<DraggableTabListItemProps> {
onReorder: (newOrder: Array<Node<DraggableTabListItemProps>>) => void;
Expand All @@ -421,11 +421,7 @@ export interface DraggableTabListPFProps
* To be used as a direct child of the <Tabs /> component. See example usage
* in tabs.stories.js
*/
export function DraggableTabListPF({
items,
onAddView,
...props
}: DraggableTabListPFProps) {
export function DraggableTabList({items, onAddView, ...props}: DraggableTabListProps) {
const collection = useCollection({items, ...props}, collectionFactory);

const parsedItems = useMemo(
Expand Down Expand Up @@ -454,7 +450,7 @@ export function DraggableTabListPF({
);
}

DraggableTabListPF.Item = Item;
DraggableTabList.Item = Item;

const TabItemWrap = styled(Reorder.Item, {
shouldForwardProp: prop => prop !== 'isSelected',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@ import {space} from 'sentry/styles/space';
import normalizeUrl from 'sentry/utils/url/normalizeUrl';
import {useFeedbackForm} from 'sentry/utils/useFeedbackForm';
import {useNavigate} from 'sentry/utils/useNavigate';
import type {IssueViewPF} from 'sentry/views/issueList/issueViewsPF/issueViewsPF';
import type {IssueView} from 'sentry/views/issueList/issueViews/issueViews';

interface IssueViewNavEllipsisMenuProps {
baseUrl: string;
deleteView: () => void;
duplicateView: () => void;
setIsEditing: (isEditing: boolean) => void;
updateView: (view: IssueViewPF) => void;
view: IssueViewPF;
updateView: (view: IssueView) => void;
view: IssueView;
sectionRef?: React.RefObject<HTMLDivElement>;
}

Expand Down Expand Up @@ -153,7 +153,7 @@ function FeedbackFooter() {
);
}

const constructViewLink = (baseUrl: string, view: IssueViewPF) => {
const constructViewLink = (baseUrl: string, view: IssueView) => {
return normalizeUrl({
pathname: `${baseUrl}/views/${view.id}/`,
query: {
Expand Down
24 changes: 12 additions & 12 deletions static/app/components/nav/issueViews/issueViewNavItemContent.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@ import {useLocation} from 'sentry/utils/useLocation';
import {useNavigate} from 'sentry/utils/useNavigate';
import useOrganization from 'sentry/utils/useOrganization';
import useProjects from 'sentry/utils/useProjects';
import {normalizeProjectsEnvironments} from 'sentry/views/issueList/issueViewsHeaderPF';
import type {
IssueViewPF,
IssueViewPFParams,
} from 'sentry/views/issueList/issueViewsPF/issueViewsPF';
IssueView,
IssueViewParams,
} from 'sentry/views/issueList/issueViews/issueViews';
import {normalizeProjectsEnvironments} from 'sentry/views/issueList/issueViewsHeader';
import {IssueSortOptions} from 'sentry/views/issueList/utils';

export interface IssueViewNavItemContentProps {
Expand All @@ -44,11 +44,11 @@ export interface IssueViewNavItemContentProps {
/**
* A callback function that updates the view with new params.
*/
updateView: (updatedView: IssueViewPF) => void;
updateView: (updatedView: IssueView) => void;
/**
* The issue view to display
*/
view: IssueViewPF;
view: IssueView;
/**
* Ref to the body of the section that contains the reorderable items.
* This is used as the portal container for the ellipsis menu, and as
Expand Down Expand Up @@ -187,10 +187,10 @@ const READABLE_PARAM_MAPPING = {
timeFilters: t('time range'),
};

const constructUnsavedTooltipTitle = (unsavedChanges: Partial<IssueViewPFParams>) => {
const constructUnsavedTooltipTitle = (unsavedChanges: Partial<IssueViewParams>) => {
const changedParams = Object.keys(unsavedChanges)
.filter(k => unsavedChanges[k as keyof IssueViewPFParams] !== undefined)
.map(k => READABLE_PARAM_MAPPING[k as keyof IssueViewPFParams]);
.filter(k => unsavedChanges[k as keyof IssueViewParams] !== undefined)
.map(k => READABLE_PARAM_MAPPING[k as keyof IssueViewParams]);

return (
<Fragment>
Expand All @@ -204,9 +204,9 @@ const constructUnsavedTooltipTitle = (unsavedChanges: Partial<IssueViewPFParams>

// TODO(msun): Once nuqs supports native array query params, we can use that here and replace this absurd function
const hasUnsavedChanges = (
view: IssueViewPF,
view: IssueView,
queryParams: Location['query']
): false | Partial<IssueViewPFParams> => {
): false | Partial<IssueViewParams> => {
const {
query: originalQuery,
querySort: originalSort,
Expand Down Expand Up @@ -246,7 +246,7 @@ const hasUnsavedChanges = (
? (querySort as IssueSortOptions)
: undefined;

const newUnsavedChanges: Partial<IssueViewPFParams> = {
const newUnsavedChanges: Partial<IssueViewParams> = {
query:
queryQuery !== null &&
queryQuery !== undefined &&
Expand Down
20 changes: 10 additions & 10 deletions static/app/components/nav/issueViews/issueViewNavItems.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ import {useLocation} from 'sentry/utils/useLocation';
import {useNavigate} from 'sentry/utils/useNavigate';
import useOrganization from 'sentry/utils/useOrganization';
import {useParams} from 'sentry/utils/useParams';
import type {IssueViewPF} from 'sentry/views/issueList/issueViewsPF/issueViewsPF';
import {generateTempViewId} from 'sentry/views/issueList/issueViewsPF/issueViewsPF';
import type {IssueView} from 'sentry/views/issueList/issueViews/issueViews';
import {generateTempViewId} from 'sentry/views/issueList/issueViews/issueViews';
import {useUpdateGroupSearchViews} from 'sentry/views/issueList/mutations/useUpdateGroupSearchViews';
import type {GroupSearchView} from 'sentry/views/issueList/types';

interface IssueViewNavItemsProps {
baseUrl: string;
loadedViews: IssueViewPF[];
loadedViews: IssueView[];
sectionRef: React.RefObject<HTMLDivElement>;
}

Expand All @@ -33,7 +33,7 @@ export function IssueViewNavItems({

const queryParams = location.query;

const [views, setViews] = useState<IssueViewPF[]>(loadedViews);
const [views, setViews] = useState<IssueView[]>(loadedViews);

// If the `viewId` (from `/issues/views/:viewId`) is not found in the views array,
// then redirect to the "All Issues" page
Expand Down Expand Up @@ -106,7 +106,7 @@ export function IssueViewNavItems({

const debounceUpdateViews = useMemo(
() =>
debounce((newTabs: IssueViewPF[]) => {
debounce((newTabs: IssueView[]) => {
if (newTabs) {
updateViews({
orgSlug: organization.slug,
Expand All @@ -133,15 +133,15 @@ export function IssueViewNavItems({
);

const handleReorder = useCallback(
(newOrder: IssueViewPF[]) => {
(newOrder: IssueView[]) => {
setViews(newOrder);
debounceUpdateViews(newOrder);
},
[debounceUpdateViews]
);

const handleUpdateView = useCallback(
(view: IssueViewPF, updatedView: IssueViewPF) => {
(view: IssueView, updatedView: IssueView) => {
const newViews = views.map(v => {
if (v.id === view.id) {
return updatedView;
Expand All @@ -155,7 +155,7 @@ export function IssueViewNavItems({
);

const handleDeleteView = useCallback(
(view: IssueViewPF) => {
(view: IssueView) => {
const newViews = views.filter(v => v.id !== view.id);
setViews(newViews);
debounceUpdateViews(newViews);
Expand All @@ -170,7 +170,7 @@ export function IssueViewNavItems({
);

const handleDuplicateView = useCallback(
(view: IssueViewPF) => {
(view: IssueView) => {
const idx = views.findIndex(v => v.id === view.id);
if (idx !== -1) {
const newViewId = generateTempViewId();
Expand Down Expand Up @@ -219,7 +219,7 @@ export function IssueViewNavItems({
);
}

export const constructViewLink = (baseUrl: string, view: IssueViewPF) => {
export const constructViewLink = (baseUrl: string, view: IssueView) => {
return normalizeUrl({
pathname: `${baseUrl}/views/${view.id}/`,
query: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {space} from 'sentry/styles/space';
import type {PageFilters} from 'sentry/types/core';
import {getUtcDateString} from 'sentry/utils/dates';
import useOrganization from 'sentry/utils/useOrganization';
import type {IssueViewPF} from 'sentry/views/issueList/issueViewsPF/issueViewsPF';
import type {IssueView} from 'sentry/views/issueList/issueViews/issueViews';
import {useFetchIssueCounts} from 'sentry/views/issueList/queries/useFetchIssueCounts';

const TAB_MAX_COUNT = 99;
Expand All @@ -29,7 +29,7 @@ const constructCountTimeFrame = (
};

interface IssueViewNavQueryCountProps {
view: IssueViewPF;
view: IssueView;
}

export function IssueViewNavQueryCount({view}: IssueViewNavQueryCountProps) {
Expand Down
6 changes: 2 additions & 4 deletions static/app/views/issueList/filters.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,13 @@ function IssueListFilters({query, sort, onSortChange, onSearch}: Props) {
const organization = useOrganization();

const hasNewLayout = organization.features.includes('issue-stream-table-layout');
const hasPageFiltersPersistence = organization.features.includes(
'issue-views-page-filter'
);
const hasIssueViews = organization.features.includes('issue-stream-custom-views');

return (
<FiltersContainer hasNewLayout={hasNewLayout}>
<GuideAnchor
target="issue_views_page_filters_persistence"
disabled={!hasPageFiltersPersistence}
disabled={!hasIssueViews}
>
<StyledPageFilterBar>
<ProjectPageFilter />
Expand Down
4 changes: 2 additions & 2 deletions static/app/views/issueList/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ function IssueListContainer({children}: Props) {
return (
<SentryDocumentTitle title={t('Issues')} orgSlug={organization.slug}>
<PageFiltersContainer
skipLoadLastUsed={organization.features.includes('issue-views-page-filter')}
disablePersistence={organization.features.includes('issue-views-page-filter')}
skipLoadLastUsed={organization.features.includes('issue-stream-custom-views')}
disablePersistence={organization.features.includes('issue-stream-custom-views')}
>
<NoProjectMessage organization={organization}>{children}</NoProjectMessage>
</PageFiltersContainer>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {motion} from 'framer-motion';
import {GrowingInput} from 'sentry/components/growingInput';
import {Tooltip} from 'sentry/components/tooltip';

interface EditableTabTitlePFProps {
interface EditableTabTitleProps {
isEditing: boolean;
isSelected: boolean;
label: string;
Expand All @@ -15,14 +15,14 @@ interface EditableTabTitlePFProps {
disableEditing?: boolean;
}

function EditableTabTitlePF({
function EditableTabTitle({
label,
onChange,
isEditing,
isSelected,
setIsEditing,
disableEditing,
}: EditableTabTitlePFProps) {
}: EditableTabTitleProps) {
const [inputValue, setInputValue] = useState(label);

useEffect(() => {
Expand Down Expand Up @@ -136,7 +136,7 @@ function EditableTabTitlePF({
);
}

export default EditableTabTitlePF;
export default EditableTabTitle;

const UnselectedTabTitle = styled('div')<{isSelected: boolean}>`
height: 20px;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,17 @@ import {t} from 'sentry/locale';
import {space} from 'sentry/styles/space';
import {useFeedbackForm} from 'sentry/utils/useFeedbackForm';

interface IssueViewEllipsisMenuPFProps {
interface IssueViewEllipsisMenuProps {
menuOptions: MenuItemProps[];
'aria-label'?: string;
hasUnsavedChanges?: boolean;
}

export function IssueViewEllipsisMenuPF({
export function IssueViewEllipsisMenu({
hasUnsavedChanges = false,
menuOptions,
...props
}: IssueViewEllipsisMenuPFProps) {
}: IssueViewEllipsisMenuProps) {
return (
<TriggerIconWrap>
<StyledDropdownMenu
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {space} from 'sentry/styles/space';
import type {PageFilters} from 'sentry/types/core';
import {getUtcDateString} from 'sentry/utils/dates';
import useOrganization from 'sentry/utils/useOrganization';
import type {IssueViewPF} from 'sentry/views/issueList/issueViewsPF/issueViewsPF';
import type {IssueView} from 'sentry/views/issueList/issueViews/issueViews';
import {useFetchIssueCounts} from 'sentry/views/issueList/queries/useFetchIssueCounts';

const TAB_MAX_COUNT = 99;
Expand All @@ -28,11 +28,11 @@ const constructCountTimeFrame = (
};
};

interface IssueViewQueryCountPFProps {
view: IssueViewPF;
interface IssueViewQueryCountProps {
view: IssueView;
}

export function IssueViewQueryCountPF({view}: IssueViewQueryCountPFProps) {
export function IssueViewQueryCount({view}: IssueViewQueryCountProps) {
const organization = useOrganization();
const theme = useTheme();

Expand Down
Loading

0 comments on commit d8d141a

Please sign in to comment.