ProjectBranchSelector.utils.ts 1.1 KB

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