Browse Source

ref(configstore) use useUser instead of config store get (#78007)

Swap out the config store for react hook, aka old habits die hard

---------

Co-authored-by: getsantry[bot] <66042841+getsantry[bot]@users.noreply.github.com>
Jonas 5 months ago
parent
commit
2bd6104136

+ 2 - 2
static/app/components/acl/role.tsx

@@ -1,10 +1,10 @@
 import {useMemo} from 'react';
 
-import ConfigStore from 'sentry/stores/configStore';
 import type {Organization} from 'sentry/types/organization';
 import type {User} from 'sentry/types/user';
 import {isActiveSuperuser} from 'sentry/utils/isActiveSuperuser';
 import {isRenderFunc} from 'sentry/utils/isRenderFunc';
+import {useUser} from 'sentry/utils/useUser';
 import withOrganization from 'sentry/utils/withOrganization';
 
 type RoleRenderProps = {
@@ -57,7 +57,7 @@ interface RoleProps {
 }
 
 function Role({role, organization, children}: RoleProps): React.ReactElement | null {
-  const user = ConfigStore.get('user');
+  const user = useUser();
 
   const hasRole = useMemo(
     () => checkUserRole(user, organization, role),

+ 3 - 2
static/app/components/activity/note/header.tsx

@@ -5,19 +5,20 @@ import {openConfirmModal} from 'sentry/components/confirm';
 import {DropdownMenu} from 'sentry/components/dropdownMenu';
 import {IconEllipsis} from 'sentry/icons';
 import {t} from 'sentry/locale';
-import ConfigStore from 'sentry/stores/configStore';
 import {space} from 'sentry/styles/space';
 import type {User} from 'sentry/types/user';
+import {useUser} from 'sentry/utils/useUser';
 
 type Props = {
   authorName: string;
   onDelete: () => void;
   onEdit: () => void;
+  // Naming is not great here, but this seems to be the author, aka user who wrote the note.
   user?: User;
 };
 
 function NoteHeader({authorName, user, onEdit, onDelete}: Props) {
-  const activeUser = ConfigStore.get('user');
+  const activeUser = useUser();
   const canEdit = activeUser && (activeUser.isSuperuser || user?.id === activeUser.id);
 
   return (

+ 2 - 2
static/app/components/assigneeSelectorDropdown.tsx

@@ -19,7 +19,6 @@ import LoadingIndicator from 'sentry/components/loadingIndicator';
 import {Tooltip} from 'sentry/components/tooltip';
 import {IconAdd, IconUser} from 'sentry/icons';
 import {t, tct, tn} from 'sentry/locale';
-import ConfigStore from 'sentry/stores/configStore';
 import MemberListStore from 'sentry/stores/memberListStore';
 import ProjectsStore from 'sentry/stores/projectsStore';
 import {useLegacyStore} from 'sentry/stores/useLegacyStore';
@@ -29,6 +28,7 @@ import type {Group, SuggestedOwnerReason} from 'sentry/types/group';
 import type {Team} from 'sentry/types/organization';
 import type {User} from 'sentry/types/user';
 import {buildTeamId} from 'sentry/utils';
+import {useUser} from 'sentry/utils/useUser';
 
 const suggestedReasonTable: Record<SuggestedOwnerReason, string> = {
   suspectCommit: t('Suspect Commit'),
@@ -215,7 +215,7 @@ export default function AssigneeSelectorDropdown({
   trigger,
 }: AssigneeSelectorDropdownProps) {
   const memberLists = useLegacyStore(MemberListStore);
-  const sessionUser = ConfigStore.get('user');
+  const sessionUser = useUser();
 
   const currentMemberList = memberList ?? memberLists?.members ?? [];
 

+ 2 - 2
static/app/components/avatar/seenByList.tsx

@@ -6,9 +6,9 @@ import AvatarList from 'sentry/components/avatar/avatarList';
 import {Tooltip} from 'sentry/components/tooltip';
 import {IconShow} from 'sentry/icons';
 import {t} from 'sentry/locale';
-import ConfigStore from 'sentry/stores/configStore';
 import type {AvatarUser, User} from 'sentry/types/user';
 import {userDisplayName} from 'sentry/utils/formatters';
+import {useUser} from 'sentry/utils/useUser';
 
 type Props = {
   // Avatar size
@@ -35,7 +35,7 @@ function SeenByList({
   iconPosition = 'left',
   className,
 }: Props) {
-  const activeUser = ConfigStore.get('user');
+  const activeUser = useUser();
   const displayUsers = seenBy.filter(user => activeUser.id !== user.id);
 
   if (displayUsers.length === 0) {

+ 2 - 2
static/app/components/commitRow.tsx

@@ -17,12 +17,12 @@ import Version from 'sentry/components/version';
 import VersionHoverCard from 'sentry/components/versionHoverCard';
 import {IconQuestion, IconWarning} from 'sentry/icons';
 import {t, tct} from 'sentry/locale';
-import ConfigStore from 'sentry/stores/configStore';
 import {space} from 'sentry/styles/space';
 import type {Commit} from 'sentry/types/integrations';
 import type {AvatarProject} from 'sentry/types/project';
 import {trackAnalytics} from 'sentry/utils/analytics';
 import useOrganization from 'sentry/utils/useOrganization';
+import {useUser} from 'sentry/utils/useUser';
 import {Divider} from 'sentry/views/issueDetails/divider';
 import {useHasStreamlinedUI} from 'sentry/views/issueDetails/utils';
 
@@ -49,6 +49,7 @@ function CommitRow({
   onCommitClick,
   project,
 }: CommitRowProps) {
+  const user = useUser();
   const hasStreamlinedUI = useHasStreamlinedUI();
   const organization = useOrganization();
   const handleInviteClick = useCallback(() => {
@@ -74,7 +75,6 @@ function CommitRow({
     });
   }, [commit.author, organization]);
 
-  const user = ConfigStore.get('user');
   const isUser = user?.id === commit.author?.id;
 
   const firstRelease = commit.releases?.[0];

+ 2 - 2
static/app/components/dateTime.tsx

@@ -1,7 +1,7 @@
 import moment from 'moment-timezone';
 
-import ConfigStore from 'sentry/stores/configStore';
 import {getFormat} from 'sentry/utils/dates';
+import {useUser} from 'sentry/utils/useUser';
 
 export interface DateTimeProps extends React.HTMLAttributes<HTMLTimeElement> {
   /**
@@ -59,7 +59,7 @@ export function DateTime({
   forcedTimezone,
   ...props
 }: DateTimeProps) {
-  const user = ConfigStore.get('user');
+  const user = useUser();
   const options = user?.options;
 
   const formatString =

+ 2 - 2
static/app/components/discover/quickContextCommitRow.tsx

@@ -9,11 +9,11 @@ import PanelItem from 'sentry/components/panels/panelItem';
 import TextOverflow from 'sentry/components/textOverflow';
 import {Tooltip} from 'sentry/components/tooltip';
 import {t, tct} from 'sentry/locale';
-import ConfigStore from 'sentry/stores/configStore';
 import {space} from 'sentry/styles/space';
+import {useUser} from 'sentry/utils/useUser';
 
 function QuickContextCommitRow({commit}: CommitRowProps) {
-  const user = ConfigStore.get('user');
+  const user = useUser();
   const isUser = user?.id === commit.author?.id;
   const hasPullRequestURL = commit.pullRequest?.externalUrl;
   const commitMessage = formatCommitMessage(commit.message);

+ 2 - 2
static/app/components/events/aiSuggestedSolution/useOpenAISuggestionLocalStorage.tsx

@@ -1,7 +1,7 @@
 import {useCallback} from 'react';
 
-import ConfigStore from 'sentry/stores/configStore';
 import {useLocalStorageState} from 'sentry/utils/useLocalStorageState';
+import {useUser} from 'sentry/utils/useUser';
 
 type LocalState = {
   individualConsent: boolean;
@@ -11,7 +11,7 @@ export function useOpenAISuggestionLocalStorage(): [
   LocalState,
   (newState: Partial<LocalState>) => void,
 ] {
-  const user = ConfigStore.get('user');
+  const user = useUser();
 
   const [localStorageState, setLocalStorageState] = useLocalStorageState<LocalState>(
     `open-ai-suggestion:${user.id}`,

+ 2 - 1
static/app/components/featureFeedback/feedbackModal.tsx

@@ -30,6 +30,7 @@ import {defined} from 'sentry/utils';
 import {useLocation} from 'sentry/utils/useLocation';
 import useMedia from 'sentry/utils/useMedia';
 import useProjects from 'sentry/utils/useProjects';
+import {useUser} from 'sentry/utils/useUser';
 
 export const feedbackClient = new BrowserClient({
   // feedback project under Sentry organization
@@ -95,7 +96,7 @@ export function FeedbackModal<T extends Data>({
   const location = useLocation();
 
   const theme = useTheme();
-  const user = ConfigStore.get('user');
+  const user = useUser();
   const isSelfHosted = ConfigStore.get('isSelfHosted');
   const [state, setState] = useState<T>(
     props.children === undefined

+ 2 - 2
static/app/components/feedback/feedbackItem/feedbackTimestampsTooltip.tsx

@@ -4,16 +4,16 @@ import moment from 'moment-timezone';
 
 import AutoSelectText from 'sentry/components/autoSelectText';
 import {t} from 'sentry/locale';
-import ConfigStore from 'sentry/stores/configStore';
 import {space} from 'sentry/styles/space';
 import type {FeedbackIssue} from 'sentry/utils/feedback/types';
+import {useUser} from 'sentry/utils/useUser';
 
 type Props = {
   feedbackItem: FeedbackIssue;
 };
 
 export default function FeedbackTimestampsTooltip({feedbackItem}: Props) {
-  const user = ConfigStore.get('user');
+  const user = useUser();
   const options = user?.options ?? {};
   const format = options.clock24Hours ? 'HH:mm:ss z' : 'LTS z';
   const dateFirstSeen = feedbackItem.firstSeen ? moment(feedbackItem.firstSeen) : null;

Some files were not shown because too many files changed in this diff