Skip to content

Commit 1def202

Browse files
committed
Merge branch 'main' into war-in/fix-OD-signout-bootsplash
2 parents 32fbe93 + 8b15ab7 commit 1def202

432 files changed

Lines changed: 9467 additions & 6103 deletions

File tree

Some content is hidden

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

.claude/skills/coding-standards/rules/clean-react-1-composition-over-config.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -462,11 +462,11 @@ In all cases, the rule applies to: **new components**, **new features added to e
462462
- The optional prop is used for logic beyond just conditional rendering (e.g., computing derived values, passed to callbacks, used in multiple places within the component)
463463
- The component is a thin wrapper around a platform primitive (e.g., wrapping `TextInput`, `ScrollView`, `Pressable`) — these naturally pass through configuration props
464464
- Items come from **runtime data** (API responses, user-generated content, Onyx collections) — dynamic data must be mapped
465-
- The array is used with **list components** (e.g., `FlatList`, `SectionList`, or custom wrappers) — these require data arrays by design
465+
- The array is used with **list components** (e.g., `FlatList`, or custom wrappers) — these require data arrays by design
466466
- Items are truly **homogeneous** (same shape, same behavior, only values differ) and the count is **unbounded** (e.g., list of chat messages, search results)
467467
- The array is a **framework requirement** (e.g., React Navigation screen config, form validation rules)
468468
- The `ReactNode` prop is `children` itself — `children` is the foundation of composition, not configuration
469-
- The render function is a **list component callback** (`renderItem` on `FlatList`, `SectionList`, `DraggableList`) — these are framework requirements
469+
- The render function is a **list component callback** (`renderItem` on `FlatList`, `DraggableList`) — these are framework requirements
470470
- The render function receives **per-item runtime data** from a dynamic collection (e.g., `renderSuggestionMenuItem(item, index)`) — this is list-style rendering, not slot configuration
471471

472472
**Search Patterns** (hints for reviewers):

.claude/skills/coding-standards/rules/perf-1-no-spread-in-renderitem.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ title: No spread in list item's renderItem
3737

3838
Flag ONLY when ALL of these are true:
3939

40-
- Code is inside a renderItem function (function passed to FlatList, SectionList, etc.)
40+
- Code is inside a renderItem function (function passed to FlatList, etc.)
4141
- A spread operator (...) is used on an object
4242
- That object is being passed as a prop to a component
4343
- The spread creates a NEW object literal inline

.github/ISSUE_TEMPLATE/Standard.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
name: Standard issue template
33
about: A standard template to follow when creating a new issue in this repository
4-
labels: Bug, Daily, External
4+
labels: Bug, Daily
55
---
66

77
If you haven’t already, check out our [contributing guidelines](https://github.com/Expensify/ReactNativeChat/blob/main/contributingGuides/CONTRIBUTING.md) for onboarding and email contributors@expensify.com to request to join our Slack channel!
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
name: Get merged pull request
2+
description: Given the current push event's commit SHA, finds the pull request that was merged to produce it.
3+
4+
inputs:
5+
github_token:
6+
description: GitHub token used to call the API
7+
required: true
8+
9+
outputs:
10+
number:
11+
description: The PR number
12+
value: ${{ steps.getMergedPR.outputs.number }}
13+
title:
14+
description: The PR title
15+
value: ${{ steps.getMergedPR.outputs.title }}
16+
body:
17+
description: The PR body
18+
value: ${{ steps.getMergedPR.outputs.body }}
19+
labels:
20+
description: Newline-separated label names
21+
value: ${{ steps.getMergedPR.outputs.labels }}
22+
assignees:
23+
description: Newline-separated assignee logins
24+
value: ${{ steps.getMergedPR.outputs.assignees }}
25+
26+
runs:
27+
using: composite
28+
steps:
29+
- name: Find merged pull request for this commit
30+
id: getMergedPR
31+
shell: bash
32+
run: |
33+
RESP=$(gh api -H "Accept: application/vnd.github+json" "/repos/${GITHUB_REPOSITORY}/commits/${GITHUB_SHA}/pulls")
34+
35+
# Prefer the PR whose merge_commit_sha matches exactly (parity with the old action)
36+
PR=$(echo "$RESP" | jq -c "first(.[] | select(.merge_commit_sha == \"${GITHUB_SHA}\"))" 2>/dev/null)
37+
38+
# Fall back to the first merged PR associated with this commit
39+
if [[ -z "$PR" || "$PR" == "null" ]]; then
40+
PR=$(echo "$RESP" | jq -c 'first(.[] | select(.merged_at != null))' 2>/dev/null)
41+
fi
42+
43+
if [[ -z "$PR" || "$PR" == "null" ]]; then
44+
echo "::warning::No merged pull request found for commit ${GITHUB_SHA}"
45+
exit 0
46+
fi
47+
48+
{
49+
echo "number=$(echo "$PR" | jq -r '.number')"
50+
echo "title=$(echo "$PR" | jq -r '.title')"
51+
52+
echo "body<<GETMPR_EOF"
53+
echo "$PR" | jq -r '.body // ""'
54+
echo "GETMPR_EOF"
55+
56+
echo "labels<<GETMPR_LABELS_EOF"
57+
echo "$PR" | jq -r '[.labels[].name] | join("\n")'
58+
echo "GETMPR_LABELS_EOF"
59+
60+
echo "assignees<<GETMPR_ASSIGNEES_EOF"
61+
echo "$PR" | jq -r '[.assignees[].login] | join("\n")'
62+
echo "GETMPR_ASSIGNEES_EOF"
63+
64+
} >> "$GITHUB_OUTPUT"
65+
env:
66+
GITHUB_TOKEN: ${{ inputs.github_token }}

.github/workflows/androidBump.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
android_bump:
1111
runs-on: blacksmith-2vcpu-ubuntu-2404
1212
steps:
13-
- uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
13+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
1414

1515
- name: Setup Node
1616
uses: ./.github/actions/composite/setupNode

.github/workflows/authorChecklist.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ jobs:
2727
&& github.actor != 'imgbot[bot]'
2828
steps:
2929
- name: Checkout
30-
# v4
31-
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608
30+
# v6
31+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
3232

3333
- name: authorChecklist.ts
3434
uses: ./.github/actions/javascript/authorChecklist

.github/workflows/checkSVGCompression.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ jobs:
2121
runs-on: blacksmith-2vcpu-ubuntu-2404
2222
steps:
2323
- name: Checkout
24-
# v4
25-
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608
24+
# v6
25+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
2626

2727
- name: Setup Node
2828
uses: ./.github/actions/composite/setupNode

.github/workflows/cherryPick.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@ jobs:
7474

7575
# v4
7676
- name: Checkout target branch
77-
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608
77+
# v6
78+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
7879
with:
7980
ref: ${{ inputs.TARGET }}
8081
token: ${{ secrets.OS_BOTIFY_TOKEN }}

.github/workflows/claude-review.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
PR_NUMBER: ${{ github.event.pull_request.number }}
3232
steps:
3333
- name: Checkout repository
34-
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
34+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
3535
with:
3636
fetch-depth: 1
3737

.github/workflows/createDeployChecklist.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ jobs:
99
runs-on: blacksmith-2vcpu-ubuntu-2404
1010
steps:
1111
- name: Checkout
12-
# v4
13-
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608
12+
# v6
13+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
1414

1515
- name: Setup Node
1616
uses: ./.github/actions/composite/setupNode

0 commit comments

Comments
 (0)