Skip to content

Commit c05b44e

Browse files
refactor(mobile): adopt shared task policies
Generated-By: PostHog Code Task-Id: 40c57a59-b4e1-4760-8e56-ecd03e9c2f0f
1 parent b8857e3 commit c05b44e

41 files changed

Lines changed: 140 additions & 1607 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

apps/mobile/src/app/task/[id].tsx

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
import { Text } from "@components/text";
2+
import {
3+
countUserMessages,
4+
getSessionActivityPhase,
5+
} from "@posthog/core/sessions/sessionActivity";
6+
import { isTaskRunning } from "@posthog/core/tasks/taskArchive";
27
import { useQueryClient } from "@tanstack/react-query";
38
import * as Haptics from "expo-haptics";
49
import { useLocalSearchParams, useRouter } from "expo-router";
@@ -52,14 +57,7 @@ import {
5257
import { useTaskSessionStore } from "@/features/tasks/stores/taskSessionStore";
5358
import { useTaskStore } from "@/features/tasks/stores/taskStore";
5459
import type { Task } from "@/features/tasks/types";
55-
import {
56-
confirmStopRun,
57-
isTaskRunning,
58-
} from "@/features/tasks/utils/archiveGuard";
59-
import {
60-
countUserMessages,
61-
getSessionActivityPhase,
62-
} from "@/features/tasks/utils/sessionActivity";
60+
import { confirmStopRun } from "@/features/tasks/utils/archiveGuard";
6361
import { useScreenInsets } from "@/hooks/useScreenInsets";
6462
import {
6563
ANALYTICS_EVENTS,

apps/mobile/src/features/inbox/components/EditReviewersSheet.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
import { Text } from "@components/text";
2+
import {
3+
buildReviewerOptions,
4+
reviewerMatchesAvailable,
5+
} from "@posthog/core/inbox/artefacts";
26
import { MagnifyingGlass } from "phosphor-react-native";
37
import { useMemo, useState } from "react";
48
import {
@@ -14,7 +18,6 @@ import { useScreenInsets } from "@/hooks/useScreenInsets";
1418
import { useThemeColors } from "@/lib/theme";
1519
import { useAvailableSuggestedReviewers } from "../hooks/useInboxReports";
1620
import type { AvailableSuggestedReviewer, SuggestedReviewer } from "../types";
17-
import { buildReviewerOptions, reviewerMatchesAvailable } from "../utils";
1821
import { ReviewerOptionRow } from "./ReviewerOptionRow";
1922

2023
interface EditReviewersSheetProps {

apps/mobile/src/features/inbox/components/ReviewerFilterSheet.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { Text } from "@components/text";
2+
import { buildReviewerOptions } from "@posthog/core/inbox/artefacts";
23
import { useMemo } from "react";
34
import {
45
ActivityIndicator,
@@ -12,7 +13,6 @@ import { useScreenInsets } from "@/hooks/useScreenInsets";
1213
import { useThemeColors } from "@/lib/theme";
1314
import { useAvailableSuggestedReviewers } from "../hooks/useInboxReports";
1415
import { useInboxFilterStore } from "../stores/inboxFilterStore";
15-
import { buildReviewerOptions } from "../utils";
1616
import { ReviewerOptionRow } from "./ReviewerOptionRow";
1717

1818
interface ReviewerFilterSheetProps {

apps/mobile/src/features/inbox/components/ReviewerOptionRow.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
import { Text } from "@components/text";
2+
import {
3+
type ReviewerOption,
4+
reviewerOptionLabel,
5+
} from "@posthog/core/inbox/artefacts";
26
import { Check } from "phosphor-react-native";
37
import { Image, Pressable, View } from "react-native";
48
import { useThemeColors } from "@/lib/theme";
5-
import { type ReviewerOption, reviewerOptionLabel } from "../utils";
69

710
interface ReviewerOptionRowProps {
811
reviewer: ReviewerOption;

apps/mobile/src/features/inbox/components/SuggestedReviewers.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
import { Text } from "@components/text";
2+
import {
3+
orderSuggestedReviewers,
4+
reviewerMatchesAvailable,
5+
toSuggestedReviewerWriteContent,
6+
} from "@posthog/core/inbox/artefacts";
27
import { Eye, Plus, X } from "phosphor-react-native";
38
import { useMemo, useState } from "react";
49
import {
@@ -20,11 +25,6 @@ import type {
2025
SuggestedReviewer,
2126
SuggestedReviewersArtefact,
2227
} from "../types";
23-
import {
24-
orderSuggestedReviewers,
25-
reviewerMatchesAvailable,
26-
toSuggestedReviewerWriteContent,
27-
} from "../utils";
2828
import { EditReviewersSheet } from "./EditReviewersSheet";
2929

3030
export type ReviewerActionExtra = Pick<

apps/mobile/src/features/inbox/constants.ts

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,3 @@
1-
/** Comma-separated statuses for the inbox pipeline (excludes terminal/deleted). */
2-
export const INBOX_PIPELINE_STATUS_FILTER =
3-
"potential,candidate,in_progress,ready,pending_input";
4-
5-
/**
6-
* Status filter for the Archive view — the two terminal, not-in-inbox states:
7-
* `suppressed` (user archived it; restorable) and `resolved` (its
8-
* implementation PR merged; terminal, reference only).
9-
*/
10-
export const INBOX_DISMISSED_STATUS_FILTER = "suppressed,resolved";
11-
12-
/** Polling interval for inbox queries (ms). */
13-
export const INBOX_REFETCH_INTERVAL_MS = 5_000;
14-
151
/**
162
* Reasons offered when the user dismisses a signal report.
173
* Mirrors apps/code/src/shared/dismissalReasons.ts.

apps/mobile/src/features/inbox/hooks/useInboxReports.ts

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
import {
2+
buildArchiveListOrdering,
3+
buildPriorityFilterParam,
4+
buildSignalReportListOrdering,
5+
buildStatusFilterParam,
6+
buildSuggestedReviewerFilterParam,
7+
INBOX_DISMISSED_STATUS_FILTER,
8+
INBOX_REFETCH_INTERVAL_MS,
9+
} from "@posthog/core/inbox/reportFiltering";
110
import {
211
useInfiniteQuery,
312
useMutation,
@@ -19,10 +28,6 @@ import {
1928
restoreSignalReport,
2029
updateSignalReportArtefact,
2130
} from "../api";
22-
import {
23-
INBOX_DISMISSED_STATUS_FILTER,
24-
INBOX_REFETCH_INTERVAL_MS,
25-
} from "../constants";
2631
import { useInboxFilterStore } from "../stores/inboxFilterStore";
2732
import type {
2833
AvailableSuggestedReviewersResponse,
@@ -36,14 +41,7 @@ import type {
3641
SuggestedReviewer,
3742
SuggestedReviewerWriteEntry,
3843
} from "../types";
39-
import {
40-
buildArchiveListOrdering,
41-
buildPriorityFilterParam,
42-
buildSignalReportListOrdering,
43-
buildStatusFilterParam,
44-
buildSuggestedReviewerFilterParam,
45-
isRestorableReport,
46-
} from "../utils";
44+
import { isRestorableReport } from "../utils";
4745

4846
export const inboxKeys = {
4947
all: ["inbox", "signal-reports"] as const,

apps/mobile/src/features/inbox/stores/inboxFilterStore.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { INBOX_PIPELINE_STATUSES } from "@posthog/core/inbox/reportFiltering";
12
import AsyncStorage from "@react-native-async-storage/async-storage";
23
import { create } from "zustand";
34
import { createJSONStorage, persist } from "zustand/middleware";
@@ -25,12 +26,7 @@ export type SourceProduct =
2526
| "signals_scout";
2627

2728
export const DEFAULT_STATUS_FILTER: SignalReportStatus[] = [
28-
"ready",
29-
"pending_input",
30-
"in_progress",
31-
"failed",
32-
"candidate",
33-
"potential",
29+
...INBOX_PIPELINE_STATUSES,
3430
];
3531

3632
interface InboxFilterState {

0 commit comments

Comments
 (0)