Skip to content

filterByStatus

Filter projects by their status value.

Signature

tsx
function filterByStatus(
  projects: ProjexProject[],
  status: ProjectStatus | 'all' | ProjectStatus[] | undefined
): ProjexProject[]

Parameters

ParameterTypeDescription
projectsProjexProject[]Array of projects to filter
statusProjectStatus | 'all' | ProjectStatus[] | undefinedStatus to filter by

Returns

ProjexProject[] - Filtered array of projects (new array, does not mutate input)

Behavior

  • Returns empty array if projects is empty
  • Returns copy of all projects if status is 'all' or undefined
  • Filters by single status if status is a ProjectStatus value
  • Filters by multiple statuses if status is an array

Example

tsx
import { filterByStatus } from '@manningworks/projex'

// Single status
const activeProjects = filterByStatus(projects, 'active')

// Multiple statuses
const visibleProjects = filterByStatus(projects, ['active', 'shipped'])

// All projects
const allProjects = filterByStatus(projects, 'all')

// With undefined
const allProjects = filterByStatus(projects, undefined)

Status Values

tsx
type ProjectStatus = 
  | 'active'
  | 'shipped'
  | 'in-progress'
  | 'coming-soon'
  | 'archived'
  | 'for-sale'