in public/src/components/channelManagement/campaigns/CampaignsSidebar.tsx [37:79]
function CampaignsSidebar({
campaigns,
createCampaign,
selectedCampaign,
onCampaignSelected,
}: CampaignsSidebarProps): React.ReactElement {
const classes = useStyles();
const [campaignSearch, setCampaignSearch] = useState('');
const searchInput = (e: React.ChangeEvent<HTMLInputElement>) => {
if (e && e.target) {
setCampaignSearch(e.target.value.toUpperCase());
}
};
return (
<div className={classes.root}>
<div className={classes.buttonsContainer}>
<NewCampaignButton
existingNames={campaigns.map(c => c.name)}
existingNicknames={campaigns.map(c => c.nickname || '')}
createCampaign={createCampaign}
/>
<TextField
className={classes.searchField}
label="Filter campaigns"
type="search"
variant="outlined"
onInput={searchInput}
onChange={searchInput}
/>
</div>
<div className={classes.listsContainer}>
<CampaignsList
campaigns={campaigns}
campaignSearch={campaignSearch}
selectedCampaign={selectedCampaign}
onCampaignSelected={onCampaignSelected}
/>
</div>
</div>
);
}