ProjectBranchSelector.utils.ts33 lines · main
1import type { Branch } from '@/data/branches/branches-query'
2import type { Organization } from '@/types'
3
4export interface ProjectBranchSelectorState {
5 selectedBranch: Branch | undefined
6 isMainBranch: boolean
7 branchDisplayName: string
8 selectedOrgInitial: string
9 organizationHref: string
10}
11
12export function getProjectBranchSelectorState(params: {
13 selectedBranch: Branch | undefined
14 isBranchingEnabled: boolean
15 selectedOrganization: Organization | undefined
16}): ProjectBranchSelectorState {
17 const { selectedBranch, isBranchingEnabled, selectedOrganization } = params
18
19 const isMainBranch = !isBranchingEnabled || selectedBranch?.is_default === true
20 const branchDisplayName = isBranchingEnabled ? (selectedBranch?.name ?? 'main') : 'main'
21 const selectedOrgInitial = selectedOrganization?.name?.trim().charAt(0).toUpperCase() ?? 'O'
22 const organizationHref = selectedOrganization?.slug
23 ? `/org/${selectedOrganization.slug}`
24 : '/organizations'
25
26 return {
27 selectedBranch,
28 isMainBranch,
29 branchDisplayName,
30 selectedOrgInitial,
31 organizationHref,
32 }
33}