1
0

step.tsx 985 B

12345678910111213141516171819202122232425262728293031323334353637
  1. import React, { useContext } from 'react';
  2. import BasicStep from './basicStep';
  3. import FillStep from './fillStep';
  4. import NavStep from './navStep';
  5. import Context from './context';
  6. export type Status = 'wait' | 'process' | 'finish' | 'error' | 'warning';
  7. export interface StepProps {
  8. description?: React.ReactNode;
  9. icon?: React.ReactNode;
  10. status?: Status;
  11. title?: React.ReactNode;
  12. className?: string;
  13. style?: React.CSSProperties;
  14. onClick?: React.MouseEventHandler<HTMLDivElement>;
  15. }
  16. const Step = (props: StepProps) => {
  17. const { type } = useContext(Context);
  18. const renderStep = () => {
  19. switch (type) {
  20. case 'fill':
  21. return <FillStep {...props} />;
  22. case 'basic':
  23. return <BasicStep {...props} />;
  24. case 'nav':
  25. return <NavStep {...props} />;
  26. default:
  27. return null;
  28. }
  29. };
  30. return renderStep();
  31. };
  32. export default Step;