index.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import { resetComponent } from '../../style';
  2. import { genCollapseMotion } from '../../style/motion';
  3. import { genStyleHooks, mergeToken } from '../../theme/internal';
  4. import genDraggerStyle from './dragger';
  5. import genListStyle from './list';
  6. import genMotionStyle from './motion';
  7. import { genPictureCardStyle, genPictureStyle } from './picture';
  8. import genRtlStyle from './rtl';
  9. const genBaseStyle = token => {
  10. const {
  11. componentCls,
  12. colorTextDisabled
  13. } = token;
  14. return {
  15. [`${componentCls}-wrapper`]: Object.assign(Object.assign({}, resetComponent(token)), {
  16. [componentCls]: {
  17. outline: 0,
  18. "input[type='file']": {
  19. cursor: 'pointer'
  20. }
  21. },
  22. [`${componentCls}-select`]: {
  23. display: 'inline-block'
  24. },
  25. [`${componentCls}-hidden`]: {
  26. display: 'none'
  27. },
  28. [`${componentCls}-disabled`]: {
  29. color: colorTextDisabled,
  30. cursor: 'not-allowed'
  31. }
  32. })
  33. };
  34. };
  35. export const prepareComponentToken = token => ({
  36. actionsColor: token.colorIcon
  37. });
  38. // ============================== Export ==============================
  39. export default genStyleHooks('Upload', token => {
  40. const {
  41. fontSizeHeading3,
  42. fontHeight,
  43. lineWidth,
  44. controlHeightLG,
  45. calc
  46. } = token;
  47. const uploadToken = mergeToken(token, {
  48. uploadThumbnailSize: calc(fontSizeHeading3).mul(2).equal(),
  49. uploadProgressOffset: calc(calc(fontHeight).div(2)).add(lineWidth).equal(),
  50. uploadPicCardSize: calc(controlHeightLG).mul(2.55).equal()
  51. });
  52. return [genBaseStyle(uploadToken), genDraggerStyle(uploadToken), genPictureStyle(uploadToken), genPictureCardStyle(uploadToken), genListStyle(uploadToken), genMotionStyle(uploadToken), genRtlStyle(uploadToken), genCollapseMotion(uploadToken)];
  53. }, prepareComponentToken);