Преглед на файлове

fix(rating): rating UI error when click multi times #103

tank0317 преди 4 години
родител
ревизия
6f24b4c5d1
променени са 2 файла, в които са добавени 19 реда и са изтрити 1 реда
  1. 1 1
      packages/semi-foundation/rating/foundation.ts
  2. 18 0
      packages/semi-ui/rating/__test__/rating.test.js

+ 1 - 1
packages/semi-foundation/rating/foundation.ts

@@ -108,7 +108,7 @@ export default class RatingFoundation<P = Record<string, any>, S = Record<string
         if (isReset) {
             this._adapter.notifyHoverChange(0, newValue);
         } else {
-            this._adapter.clearValue(null);
+            this._adapter.notifyHoverChange(newValue, null);
         }
     }
 

+ 18 - 0
packages/semi-ui/rating/__test__/rating.test.js

@@ -142,6 +142,24 @@ describe('Rating', () => {
         expect(R.state().value).toEqual(0);
     });
 
+
+    it('sync hoverValue when click', () => {
+        let props = {
+            allowClear: true,
+            defaultValue: 2,
+        };
+        const R = getRating(props);
+        expect(R.state().value).toEqual(2);
+        let stars = R.find('div[role="radio"]');
+        const event = {};
+        stars.at(1).simulate('click', event);
+        expect(R.state().hoverValue).toEqual(0);
+        expect(R.state().value).toEqual(0);
+        stars.at(1).simulate('click', event);
+        expect(R.state().hoverValue).toEqual(2);
+        expect(R.state().value).toEqual(2);
+    });
+
     it('tooltips', () => {
         let tooltips = ['terrible', 'bad', 'normal', 'good', 'wonderful'];
         let props = {