{"version":3,"sources":["../../../src/lib/users-filter.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Select } from \"./elements.js\";\nimport { useUsersManagementContext } from \"./users-management-context.js\";\nimport { MemberRole } from \"../api/endpoint.js\";\n\nconst ALL_ROLES_NAME = \"All\";\nconst ALL_ROLES_VALUE = \"null\";\n\ntype UsersFilterProps = React.ComponentPropsWithoutRef<typeof Select.Root> & {\n  roles: MemberRole[] | undefined;\n  disabled?: boolean;\n};\n\nexport const UsersFilter: React.FC<UsersFilterProps> = ({\n  roles,\n  disabled,\n}) => {\n  const {\n    dispatch,\n    state: { role },\n  } = useUsersManagementContext();\n\n  const setFilterParams = (value: string | null) => {\n    dispatch({ type: \"FILTER_BY_ROLE\", role: value });\n  };\n  const isValidRole = (value: unknown): value is string =>\n    roles ? roles.findIndex((role) => role.slug === value) !== -1 : false;\n  const filteredRole = isValidRole(role) ? role : ALL_ROLES_VALUE;\n  const roleName =\n    roles?.find((role) => role.slug === filteredRole)?.name || ALL_ROLES_NAME;\n\n  const onValueChange = (value: string) => {\n    if (value === ALL_ROLES_VALUE) {\n      setFilterParams(null);\n    } else {\n      if (isValidRole(value)) {\n        setFilterParams(value);\n      }\n    }\n  };\n\n  return (\n    <Select.Root\n      value={roles ? filteredRole : \"null\"}\n      onValueChange={onValueChange}\n      disabled={disabled}\n    >\n      <Select.Trigger>{roles ? roleName : ALL_ROLES_NAME}</Select.Trigger>\n      <Select.Content>\n        <Select.Item value={ALL_ROLES_VALUE}>{ALL_ROLES_NAME}</Select.Item>\n        {roles?.map((role) => (\n          <React.Fragment key={role.slug}>\n            <Select.Item value={role.slug}>{role.name}</Select.Item>\n          </React.Fragment>\n        ))}\n      </Select.Content>\n    </Select.Root>\n  );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAiDM;AA/CN,YAAuB;AACvB,sBAAuB;AACvB,sCAA0C;AAG1C,MAAM,iBAAiB;AACvB,MAAM,kBAAkB;AAOjB,MAAM,cAA0C,CAAC;AAAA,EACtD;AAAA,EACA;AACF,MAAM;AACJ,QAAM;AAAA,IACJ;AAAA,IACA,OAAO,EAAE,KAAK;AAAA,EAChB,QAAI,2DAA0B;AAE9B,QAAM,kBAAkB,CAAC,UAAyB;AAChD,aAAS,EAAE,MAAM,kBAAkB,MAAM,MAAM,CAAC;AAAA,EAClD;AACA,QAAM,cAAc,CAAC,UACnB,QAAQ,MAAM,UAAU,CAACA,UAASA,MAAK,SAAS,KAAK,MAAM,KAAK;AAClE,QAAM,eAAe,YAAY,IAAI,IAAI,OAAO;AAChD,QAAM,WACJ,OAAO,KAAK,CAACA,UAASA,MAAK,SAAS,YAAY,GAAG,QAAQ;AAE7D,QAAM,gBAAgB,CAAC,UAAkB;AACvC,QAAI,UAAU,iBAAiB;AAC7B,sBAAgB,IAAI;AAAA,IACtB,OAAO;AACL,UAAI,YAAY,KAAK,GAAG;AACtB,wBAAgB,KAAK;AAAA,MACvB;AAAA,IACF;AAAA,EACF;AAEA,SACE;AAAA,IAAC,uBAAO;AAAA,IAAP;AAAA,MACC,OAAO,QAAQ,eAAe;AAAA,MAC9B;AAAA,MACA;AAAA,MAEA;AAAA,oDAAC,uBAAO,SAAP,EAAgB,kBAAQ,WAAW,gBAAe;AAAA,QACnD,6CAAC,uBAAO,SAAP,EACC;AAAA,sDAAC,uBAAO,MAAP,EAAY,OAAO,iBAAkB,0BAAe;AAAA,UACpD,OAAO,IAAI,CAACA,UACX,4CAAC,MAAM,UAAN,EACC,sDAAC,uBAAO,MAAP,EAAY,OAAOA,MAAK,MAAO,UAAAA,MAAK,MAAK,KADvBA,MAAK,IAE1B,CACD;AAAA,WACH;AAAA;AAAA;AAAA,EACF;AAEJ;","names":["role"]}