diff --git a/web/src/components/CloneButtonTooltip/CloneButtonTooltip.tsx b/web/src/components/CloneButtonTooltip/CloneButtonTooltip.tsx index 11eceaa4e..d927c159b 100644 --- a/web/src/components/CloneButtonTooltip/CloneButtonTooltip.tsx +++ b/web/src/components/CloneButtonTooltip/CloneButtonTooltip.tsx @@ -4,7 +4,6 @@ import { useStrings } from 'framework/strings' import { CopyButton } from 'components/CopyButton/CopyButton' import { CodeIcon } from 'utils/GitUtils' import CloneCredentialDialog from 'components/CloneCredentialDialog/CloneCredentialDialog' -import { useAppContext } from 'AppContext' import css from './CloneButtonTooltip.module.scss' interface CloneButtonTooltipProps { @@ -14,7 +13,6 @@ interface CloneButtonTooltipProps { export function CloneButtonTooltip({ httpsURL }: CloneButtonTooltipProps) { const { getString } = useStrings() const [flag, setFlag] = useState(false) - const { standalone } = useAppContext() return ( diff --git a/web/src/hooks/useUserPreference.ts b/web/src/hooks/useUserPreference.ts index a8e54d0d3..51660b9cd 100644 --- a/web/src/hooks/useUserPreference.ts +++ b/web/src/hooks/useUserPreference.ts @@ -5,7 +5,9 @@ export enum UserPreference { DIFF_LINE_BREAKS = 'DIFF_LINE_BREAKS', PULL_REQUESTS_FILTER_SELECTED_OPTIONS = 'PULL_REQUESTS_FILTER_SELECTED_OPTIONS', PULL_REQUEST_MERGE_STRATEGY = 'PULL_REQUEST_MERGE_STRATEGY', - PULL_REQUEST_CREATION_OPTION = 'PULL_REQUEST_CREATION_OPTION' + PULL_REQUEST_CREATION_OPTION = 'PULL_REQUEST_CREATION_OPTION', + PULL_REQUEST_ACTIVITY_FILTER = 'PULL_REQUEST_ACTIVITY_FILTER', + PULL_REQUEST_ACTIVITY_ORDER = 'PULL_REQUEST_ACTIVITY_ORDER' } export function useUserPreference( diff --git a/web/src/pages/PullRequest/Conversation/Conversation.tsx b/web/src/pages/PullRequest/Conversation/Conversation.tsx index 45a9615a3..6d42c91b9 100644 --- a/web/src/pages/PullRequest/Conversation/Conversation.tsx +++ b/web/src/pages/PullRequest/Conversation/Conversation.tsx @@ -16,6 +16,7 @@ import { CodeCommentStatusSelect } from 'components/CodeCommentStatusSelect/Code import { CodeCommentStatusButton } from 'components/CodeCommentStatusButton/CodeCommentStatusButton' import { CodeCommentSecondarySaveButton } from 'components/CodeCommentSecondarySaveButton/CodeCommentSecondarySaveButton' import type { PRChecksDecisionResult } from 'hooks/usePRChecksDecision' +import { UserPreference, useUserPreference } from 'hooks/useUserPreference' import { PullRequestTabContentWrapper } from '../PullRequestTabContentWrapper' import { DescriptionBox } from './DescriptionBox' import { PullRequestActionsBox } from './PullRequestActionsBox/PullRequestActionsBox' @@ -59,9 +60,16 @@ export const Conversation: React.FC = ({ debounce: 500 }) const { showError } = useToaster() - const [dateOrderSort, setDateOrderSort] = useState(orderSortDate.ASC) + const [dateOrderSort, setDateOrderSort] = useUserPreference( + UserPreference.PULL_REQUEST_ACTIVITY_ORDER, + orderSortDate.ASC + ) const activityFilters = useActivityFilters() - const [activityFilter, setActivityFilter] = useState(activityFilters[0] as SelectOption) + const [activityFilter, setActivityFilter] = useUserPreference( + UserPreference.PULL_REQUEST_ACTIVITY_FILTER, + activityFilters[0] as SelectOption + ) + const activityBlocks = useMemo(() => { // Each block may have one or more activities which are grouped into it. For example, one comment block // contains a parent comment and multiple replied comments