function FiltersComponent()

in apps/chat/src/components/Chat/Publish/PublicationHandler.tsx [68:106]


function FiltersComponent({
  filteredRuleEntries,
  newRules,
  publication,
  isRulesLoading,
}: FilterComponentProps) {
  const { t } = useTranslation(Translation.Chat);

  if (isRulesLoading) {
    return (
      <div className="flex size-full items-center justify-center">
        <Spinner size={48} />
      </div>
    );
  }

  return (
    <>
      {(!filteredRuleEntries.length ||
        filteredRuleEntries.every(([_, rules]) => !rules.length)) &&
        !publication.rules?.length && (
          <p className="text-sm text-secondary" data-qa="availability-label">
            {t(
              'This publication will be available to all users in the organization',
            )}
          </p>
        )}
      {filteredRuleEntries
        .filter(([_, rules]) => rules.length)
        .map(([path, rules]) => (
          <RuleListItem key={path} path={path} rules={rules} />
        ))}

      {!!publication.rules?.length && !!publication.targetFolder && (
        <RuleListItem path={publication.targetFolder} rules={newRules} />
      )}
    </>
  );
}