Merge pull request #176 from QuentinHsu/perf-helpers-renderGroup

refactor(helpers): renderGroup function
This commit is contained in:
Calcium-Ion 2024-04-03 23:31:02 +08:00 committed by GitHub
commit 456fb875de
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -8,39 +8,37 @@ export function renderText(text, limit) {
return text; return text;
} }
/**
* Render group tags based on the input group string
* @param {string} group - The input group string
* @returns {JSX.Element} - The rendered group tags
*/
export function renderGroup(group) { export function renderGroup(group) {
if (group === '') { if (group === '') {
return <Tag size='large'>default</Tag>; return <Tag size='large' key='default'>default</Tag>;
} }
let groups = group.split(',');
groups.sort(); const tagColors = {
'vip': 'yellow',
'pro': 'yellow',
'svip': 'red',
'premium': 'red'
};
const groups = group.split(',').sort();
return ( return (
<> <span key={group}>
{groups.map((group) => { {groups.map((group) => (
if (group === 'vip' || group === 'pro') { <Tag
return ( size='large'
<Tag size='large' color='yellow'> color={tagColors[group] || stringToColor(group)}
{group} key={group}
</Tag> >
); {group}
} else if (group === 'svip' || group === 'premium') { </Tag>
return ( ))}
<Tag size='large' color='red'> </span>
{group}
</Tag>
);
}
if (group === 'default') {
return <Tag size='large'>{group}</Tag>;
} else {
return (
<Tag size='large' color={stringToColor(group)}>
{group}
</Tag>
);
}
})}
</>
); );
} }