Skip to content

Commit 2fdf5c6

Browse files
committed
perf: hoists userLoginLower to component-scope createMemo
1 parent 6768848 commit 2fdf5c6

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

src/app/components/dashboard/IssuesTab.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,8 @@ export default function IssuesTab(props: IssuesTabProps) {
8585
new Set((props.monitoredRepos ?? []).map(r => r.fullName))
8686
);
8787

88+
const userLoginLower = createMemo(() => props.userLogin.toLowerCase());
89+
8890
const filterGroups = createMemo<FilterChipGroupDef[]>(() => {
8991
const users = props.allUsers;
9092
const hasMonitoredRepos = (props.monitoredRepos ?? []).length > 0;
@@ -127,7 +129,6 @@ export default function IssuesTab(props: IssuesTabProps) {
127129
.map((i) => i.id)
128130
);
129131

130-
const userLoginLower = props.userLogin.toLowerCase();
131132
const meta = new Map<number, { roles: ReturnType<typeof deriveInvolvementRoles> }>();
132133

133134
let items = props.issues.filter((issue) => {
@@ -156,7 +157,7 @@ export default function IssuesTab(props: IssuesTabProps) {
156157
if (!monitoredRepoNameSet().has(issue.repoFullName)) {
157158
const validUser = !props.allUsers || props.allUsers.some(u => u.login === tabFilter.user);
158159
if (validUser) {
159-
const surfacedBy = issue.surfacedBy ?? [userLoginLower];
160+
const surfacedBy = issue.surfacedBy ?? [userLoginLower()];
160161
if (!surfacedBy.includes(tabFilter.user)) return false;
161162
}
162163
}
@@ -241,7 +242,7 @@ export default function IssuesTab(props: IssuesTabProps) {
241242
}
242243

243244
function isInvolvedItem(item: Issue): boolean {
244-
const login = props.userLogin.toLowerCase();
245+
const login = userLoginLower();
245246
const surfacedBy = item.surfacedBy ?? [];
246247
if (surfacedBy.length > 0) return surfacedBy.includes(login);
247248
if (monitoredRepoNameSet().has(item.repoFullName)) {

src/app/components/dashboard/PullRequestsTab.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,8 @@ export default function PullRequestsTab(props: PullRequestsTabProps) {
153153
new Set((props.monitoredRepos ?? []).map(r => r.fullName))
154154
);
155155

156+
const userLoginLower = createMemo(() => props.userLogin.toLowerCase());
157+
156158
const filterGroups = createMemo<FilterChipGroupDef[]>(() => {
157159
const users = props.allUsers;
158160
const hasMonitoredRepos = (props.monitoredRepos ?? []).length > 0;
@@ -195,7 +197,6 @@ export default function PullRequestsTab(props: PullRequestsTabProps) {
195197
.map((i) => i.id)
196198
);
197199

198-
const userLoginLower = props.userLogin.toLowerCase();
199200
const meta = new Map<number, { roles: ReturnType<typeof deriveInvolvementRoles>; sizeCategory: ReturnType<typeof prSizeCategory> }>();
200201

201202
let items = props.pullRequests.filter((pr) => {
@@ -240,7 +241,7 @@ export default function PullRequestsTab(props: PullRequestsTabProps) {
240241
if (!monitoredRepoNameSet().has(pr.repoFullName)) {
241242
const validUser = !props.allUsers || props.allUsers.some(u => u.login === tabFilters.user);
242243
if (validUser) {
243-
const surfacedBy = pr.surfacedBy ?? [userLoginLower];
244+
const surfacedBy = pr.surfacedBy ?? [userLoginLower()];
244245
if (!surfacedBy.includes(tabFilters.user)) return false;
245246
}
246247
}
@@ -340,7 +341,7 @@ export default function PullRequestsTab(props: PullRequestsTabProps) {
340341
}
341342

342343
function isInvolvedItem(item: PullRequest): boolean {
343-
const login = props.userLogin.toLowerCase();
344+
const login = userLoginLower();
344345
const surfacedBy = item.surfacedBy ?? [];
345346
if (surfacedBy.length > 0) return surfacedBy.includes(login);
346347
if (monitoredRepoNameSet().has(item.repoFullName)) {

0 commit comments

Comments
 (0)