@douyinfe/semi-ui 2.2.0-beta.0 → 2.2.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/_utils/index.ts CHANGED
@@ -125,10 +125,14 @@ export const registerMediaQuery = (media: string, { match, unmatch, callInInit =
125
125
  }
126
126
  }
127
127
  callInInit && handlerMediaChange(mediaQueryList);
128
- mediaQueryList.addEventListener('change', handlerMediaChange);
129
- return (): void => mediaQueryList.removeEventListener('change', handlerMediaChange);
128
+ if (Object.prototype.hasOwnProperty.call(mediaQueryList, 'addEventListener')) {
129
+ mediaQueryList.addEventListener('change', handlerMediaChange);
130
+ return (): void => mediaQueryList.removeEventListener('change', handlerMediaChange);
131
+ }
132
+ mediaQueryList.addListener(handlerMediaChange);
133
+ return (): void => mediaQueryList.removeListener(handlerMediaChange);
130
134
  }
131
- return null;
135
+ return () => undefined;
132
136
  };
133
137
  export interface GetHighLightTextHTMLProps {
134
138
  sourceString?: string;
@@ -873,6 +873,24 @@ describe(`DatePicker`, () => {
873
873
  expect(allSeparators[1].textContent.trim()).toBe(rangeSeparator);
874
874
  });
875
875
 
876
+ /**
877
+ * fix https://github.com/DouyinFE/semi-design/issues/422
878
+ */
879
+ it('test input year length larger than 4', async () => {
880
+ const props = {
881
+ motion: false,
882
+ defaultOpen: true,
883
+ defaultValue: '2021-12-21',
884
+ };
885
+ const handleChange = sinon.spy();
886
+ const elem = mount(
887
+ <DatePicker {...props} onChange={handleChange} />
888
+ );
889
+
890
+ elem.find('input').simulate('change', { target: { value: '20221-12-21' }});
891
+ expect(handleChange.called).toBeFalsy();
892
+ });
893
+
876
894
  it('test click next/prev year buttons', () => {
877
895
  let props = {
878
896
  type: 'dateRange',
@@ -636,3 +636,29 @@ export const RangeSeparator = () => (
636
636
  </div>
637
637
  </Space>
638
638
  );
639
+
640
+ /**
641
+ * 修复输入 '20221-12-20' 类似这种年份的日期会崩溃问题
642
+ * https://github.com/DouyinFE/semi-design/issues/422
643
+ *
644
+ * 非法日期的来源
645
+ * - 用户输入
646
+ * - 受控传入
647
+ * @returns
648
+ */
649
+ export const FixParseISOBug = () => (
650
+ <div>
651
+ <label>
652
+ <div>选择一个合法值,然后输入一个非法年份</div>
653
+ <DatePicker defaultValue={'2021-12-20'} onChange={v => console.log('onChange', v)} />
654
+ </label>
655
+ <label>
656
+ <div>defaultValue='20221-12-20'</div>
657
+ <DatePicker defaultValue={'20221-12-20'} defaultOpen={true} motion={false} onChange={v => console.log('onChange', v)} />
658
+ </label>
659
+ </div>
660
+ );
661
+ FixParseISOBug.storyName = '修复 parseISO bug';
662
+ FixParseISOBug.parameters = {
663
+ chromatic: { disableSnapshot: false },
664
+ };
package/dist/css/semi.css CHANGED
@@ -13031,19 +13031,23 @@ body[theme-mode=dark], body .semi-always-dark {
13031
13031
  color: var(--semi-color-success);
13032
13032
  }
13033
13033
  .semi-notification-notice-light.semi-notification-notice-warning {
13034
- background-color: var(--semi-color-warning-light-default);
13034
+ background-image: linear-gradient(0deg, var(--semi-color-warning-light-default), var(--semi-color-warning-light-default));
13035
+ background-color: var(--semi-color-bg-0);
13035
13036
  border: 1px solid var(--semi-color-warning);
13036
13037
  }
13037
13038
  .semi-notification-notice-light.semi-notification-notice-success {
13038
- background-color: var(--semi-color-success-light-default);
13039
+ background-image: linear-gradient(0deg, var(--semi-color-success-light-default), var(--semi-color-success-light-default));
13040
+ background-color: var(--semi-color-bg-0);
13039
13041
  border: 1px solid var(--semi-color-success);
13040
13042
  }
13041
13043
  .semi-notification-notice-light.semi-notification-notice-info, .semi-notification-notice-light.semi-notification-notice-default {
13042
- background-color: var(--semi-color-info-light-default);
13044
+ background-image: linear-gradient(0deg, var(--semi-color-info-light-default), var(--semi-color-info-light-default));
13045
+ background-color: var(--semi-color-bg-0);
13043
13046
  border: 1px solid var(--semi-color-info);
13044
13047
  }
13045
13048
  .semi-notification-notice-light.semi-notification-notice-error {
13046
- background-color: var(--semi-color-danger-light-default);
13049
+ background-image: linear-gradient(0deg, var(--semi-color-danger-light-default), var(--semi-color-danger-light-default));
13050
+ background-color: var(--semi-color-bg-0);
13047
13051
  border: 1px solid var(--semi-color-danger);
13048
13052
  }
13049
13053
  .semi-notification-notice-title {