classnames.ts 676 B

12345678910111213141516171819202122232425
  1. import classnames, { Argument } from 'classnames';
  2. import { split, filter, map } from 'lodash';
  3. function addClass(rawCls: Argument, ...srcClss: Argument[]) {
  4. const clss = split(rawCls as string, /\s+/);
  5. const validClss = filter(srcClss, cls => !clss.includes(cls as string));
  6. return classnames(rawCls, ...validClss);
  7. }
  8. function removeClass(rawCls: Argument, ...srcClss: Argument[]) {
  9. const clss = split(rawCls as string, /\s+/);
  10. map(srcClss, cls => {
  11. const index = clss.indexOf(cls as string);
  12. if (index > -1) {
  13. clss.splice(index, 1);
  14. }
  15. });
  16. return classnames(...clss);
  17. }
  18. export { addClass, removeClass };