diff --git a/coverage/clover.xml b/coverage/clover.xml index 5dd1f80..d0705d7 100644 --- a/coverage/clover.xml +++ b/coverage/clover.xml @@ -1,12 +1,12 @@ - - - + + + - - - + + + @@ -23,76 +23,78 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - - - - - - + + + + + + - - - - - + + + + + - - + + - + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -117,21 +119,21 @@ - - - - - - - - - + + + + + + + + + - - + + @@ -160,26 +162,26 @@ - - - - - + + + + + - - - - + + + + - - - - - - - - - + + + + + + + + + @@ -188,17 +190,17 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/coverage/lcov.info b/coverage/lcov.info index 6f13d92..3b27683 100644 --- a/coverage/lcov.info +++ b/coverage/lcov.info @@ -4,11 +4,11 @@ FN:24,(anonymous_0) FN:25,(anonymous_1) FNF:2 FNH:2 -FNDA:76,(anonymous_0) -FNDA:76,(anonymous_1) -DA:25,76 -DA:26,76 -DA:27,76 +FNDA:77,(anonymous_0) +FNDA:77,(anonymous_1) +DA:25,77 +DA:26,77 +DA:27,77 LF:3 LH:3 BRF:0 @@ -70,145 +70,149 @@ FN:177,(anonymous_14) FN:183,(anonymous_15) FN:184,(anonymous_16) FN:197,(anonymous_17) -FN:203,(anonymous_18) -FN:204,(anonymous_19) -FN:207,(anonymous_20) -FN:232,(anonymous_21) -FN:235,(anonymous_22) -FN:247,(anonymous_23) -FN:252,(anonymous_24) +FN:200,(anonymous_18) +FN:209,(anonymous_19) +FN:210,(anonymous_20) +FN:213,(anonymous_21) +FN:238,(anonymous_22) +FN:241,(anonymous_23) +FN:253,(anonymous_24) FN:258,(anonymous_25) -FN:263,(anonymous_26) -FNF:27 -FNH:25 -FNDA:52,(anonymous_0) -FNDA:137,(anonymous_1) -FNDA:53,(anonymous_2) -FNDA:384,(anonymous_3) -FNDA:15,(anonymous_4) -FNDA:70,(anonymous_5) -FNDA:74,(anonymous_6) +FN:264,(anonymous_26) +FN:269,(anonymous_27) +FNF:28 +FNH:26 +FNDA:54,(anonymous_0) +FNDA:140,(anonymous_1) +FNDA:55,(anonymous_2) +FNDA:394,(anonymous_3) +FNDA:16,(anonymous_4) +FNDA:71,(anonymous_5) +FNDA:75,(anonymous_6) FNDA:15,(anonymous_7) -FNDA:4,(anonymous_8) +FNDA:5,(anonymous_8) FNDA:6,(anonymous_9) FNDA:4,(anonymous_10) -FNDA:29,(anonymous_11) +FNDA:30,(anonymous_11) FNDA:1,(anonymous_12) FNDA:5,(anonymous_13) FNDA:2,(anonymous_14) -FNDA:2,(anonymous_15) -FNDA:9,(anonymous_16) -FNDA:8,(anonymous_17) +FNDA:3,(anonymous_15) +FNDA:10,(anonymous_16) +FNDA:9,(anonymous_17) FNDA:1,(anonymous_18) -FNDA:4,(anonymous_19) -FNDA:8,(anonymous_20) -FNDA:0,(anonymous_21) +FNDA:1,(anonymous_19) +FNDA:4,(anonymous_20) +FNDA:10,(anonymous_21) FNDA:0,(anonymous_22) -FNDA:117,(anonymous_23) -FNDA:65,(anonymous_24) -FNDA:299,(anonymous_25) -FNDA:137,(anonymous_26) -DA:38,52 -DA:39,52 -DA:42,137 -DA:45,52 -DA:47,53 -DA:50,384 -DA:58,15 -DA:60,15 -DA:61,15 -DA:67,70 -DA:69,38 -DA:70,38 -DA:99,74 -DA:102,74 -DA:106,74 +FNDA:0,(anonymous_23) +FNDA:119,(anonymous_24) +FNDA:65,(anonymous_25) +FNDA:299,(anonymous_26) +FNDA:140,(anonymous_27) +DA:38,54 +DA:39,54 +DA:42,140 +DA:45,54 +DA:47,55 +DA:50,394 +DA:58,16 +DA:60,16 +DA:61,16 +DA:67,71 +DA:69,39 +DA:70,39 +DA:99,75 +DA:102,75 +DA:106,75 DA:107,36 DA:108,36 DA:109,4 -DA:113,70 +DA:113,71 DA:114,3 -DA:116,70 -DA:117,70 -DA:119,70 -DA:121,70 -DA:127,4 -DA:129,4 +DA:116,71 +DA:117,71 +DA:119,71 +DA:121,71 +DA:127,5 +DA:129,5 DA:138,6 DA:139,6 DA:140,5 DA:143,6 DA:150,4 DA:152,4 -DA:159,29 -DA:160,29 -DA:162,29 -DA:163,15 -DA:165,15 +DA:159,30 +DA:160,30 +DA:162,30 +DA:163,16 +DA:165,16 DA:168,14 DA:169,14 DA:176,5 DA:177,2 -DA:184,2 -DA:185,9 +DA:184,3 +DA:185,10 DA:186,1 -DA:189,8 +DA:189,9 DA:190,0 DA:191,0 -DA:195,8 -DA:197,8 -DA:204,4 -DA:209,8 -DA:211,8 -DA:212,0 -DA:215,8 -DA:216,0 -DA:219,8 -DA:233,0 -DA:235,0 -DA:236,0 -DA:248,117 -DA:249,117 -DA:250,117 -DA:252,117 -DA:253,65 -DA:254,65 -DA:255,65 -DA:259,299 -DA:262,52 -DA:264,137 -LF:69 -LH:62 +DA:195,9 +DA:197,9 +DA:201,1 +DA:203,1 +DA:210,4 +DA:215,10 +DA:217,10 +DA:218,0 +DA:221,10 +DA:222,0 +DA:225,10 +DA:239,0 +DA:241,0 +DA:242,0 +DA:254,119 +DA:255,119 +DA:256,119 +DA:258,119 +DA:259,65 +DA:260,65 +DA:261,65 +DA:265,299 +DA:268,54 +DA:270,140 +LF:71 +LH:64 BRDA:58,0,0,0 -BRDA:58,0,1,15 +BRDA:58,0,1,16 BRDA:67,1,0,32 -BRDA:67,1,1,38 +BRDA:67,1,1,39 BRDA:106,2,0,36 -BRDA:106,2,1,38 +BRDA:106,2,1,39 BRDA:108,3,0,4 BRDA:108,3,1,32 BRDA:113,4,0,3 -BRDA:113,4,1,67 -BRDA:113,5,0,70 +BRDA:113,4,1,68 +BRDA:113,5,0,71 BRDA:113,5,1,30 BRDA:139,6,0,5 BRDA:139,6,1,1 BRDA:159,7,0,0 -BRDA:159,7,1,29 +BRDA:159,7,1,30 BRDA:160,8,0,0 -BRDA:160,8,1,29 -BRDA:162,9,0,15 +BRDA:160,8,1,30 +BRDA:162,9,0,16 BRDA:162,9,1,14 BRDA:185,10,0,1 -BRDA:185,10,1,8 +BRDA:185,10,1,9 BRDA:189,11,0,0 -BRDA:189,11,1,8 +BRDA:189,11,1,9 BRDA:190,12,0,0 BRDA:190,12,1,0 -BRDA:211,13,0,0 -BRDA:211,13,1,8 -BRDA:215,14,0,0 -BRDA:215,14,1,8 +BRDA:217,13,0,0 +BRDA:217,13,1,10 +BRDA:221,14,0,0 +BRDA:221,14,1,10 BRF:30 BRH:22 end_of_record @@ -264,28 +268,28 @@ FN:127,(anonymous_3) FN:130,(anonymous_4) FNF:5 FNH:4 -FNDA:76,(anonymous_0) +FNDA:77,(anonymous_0) FNDA:15,(anonymous_1) FNDA:2,(anonymous_2) -FNDA:74,(anonymous_3) +FNDA:75,(anonymous_3) FNDA:0,(anonymous_4) DA:25,4 DA:32,4 -DA:75,76 -DA:76,76 -DA:78,76 -DA:79,76 -DA:81,76 -DA:83,76 -DA:84,76 -DA:86,76 -DA:99,76 +DA:75,77 +DA:76,77 +DA:78,77 +DA:79,77 +DA:81,77 +DA:83,77 +DA:84,77 +DA:86,77 +DA:99,77 DA:100,15 DA:101,15 DA:103,15 DA:115,2 -DA:128,74 -DA:130,74 +DA:128,75 +DA:130,75 DA:131,0 LF:18 LH:17 @@ -360,17 +364,17 @@ FNF:14 FNH:14 FNDA:104,classWithModifiers FNDA:26,(anonymous_1) -FNDA:77,serialize -FNDA:77,getCircularReplacer -FNDA:330,(anonymous_4) -FNDA:330,transform -FNDA:77,replacer -FNDA:330,(anonymous_7) +FNDA:78,serialize +FNDA:78,getCircularReplacer +FNDA:334,(anonymous_4) +FNDA:334,transform +FNDA:78,replacer +FNDA:334,(anonymous_7) FNDA:37,stopPropagation FNDA:8,(anonymous_9) FNDA:1,expectToThrow FNDA:3,(anonymous_11) -FNDA:76,cyrb53 +FNDA:77,cyrb53 FNDA:2,elementClick DA:27,104 DA:28,104 @@ -378,26 +382,26 @@ DA:30,26 DA:31,26 DA:33,26 DA:34,26 -DA:39,77 -DA:42,77 -DA:43,77 -DA:44,330 -DA:45,178 +DA:39,78 +DA:42,78 +DA:43,78 +DA:44,334 +DA:45,180 DA:46,7 -DA:48,171 -DA:51,323 -DA:56,330 -DA:58,84 +DA:48,173 +DA:51,327 +DA:56,334 +DA:58,85 DA:59,22 -DA:62,62 -DA:65,246 -DA:69,77 -DA:71,77 -DA:72,330 -DA:74,330 -DA:75,330 -DA:79,77 -DA:80,77 +DA:62,63 +DA:65,249 +DA:69,78 +DA:71,78 +DA:72,334 +DA:74,334 +DA:75,334 +DA:79,78 +DA:80,78 DA:89,37 DA:90,8 DA:91,8 @@ -406,17 +410,17 @@ DA:107,1 DA:108,3 DA:110,1 DA:112,1 -DA:121,76 -DA:122,76 -DA:124,76 -DA:125,5681 -DA:127,5681 -DA:128,5681 -DA:131,76 -DA:132,76 -DA:133,76 -DA:134,76 -DA:136,76 +DA:121,77 +DA:122,77 +DA:124,77 +DA:125,5719 +DA:127,5719 +DA:128,5719 +DA:131,77 +DA:132,77 +DA:133,77 +DA:134,77 +DA:136,77 DA:140,2 DA:142,2 DA:144,2 @@ -425,19 +429,19 @@ LH:48 BRDA:28,0,0,78 BRDA:28,0,1,26 BRDA:39,1,0,0 -BRDA:39,1,1,77 -BRDA:44,2,0,178 -BRDA:44,2,1,152 -BRDA:44,3,0,330 -BRDA:44,3,1,178 +BRDA:39,1,1,78 +BRDA:44,2,0,180 +BRDA:44,2,1,154 +BRDA:44,3,0,334 +BRDA:44,3,1,180 BRDA:45,4,0,7 -BRDA:45,4,1,171 -BRDA:56,5,0,84 -BRDA:56,5,1,246 +BRDA:45,4,1,173 +BRDA:56,5,0,85 +BRDA:56,5,1,249 BRDA:58,6,0,22 -BRDA:58,6,1,62 -BRDA:58,7,0,84 -BRDA:58,7,1,84 +BRDA:58,6,1,63 +BRDA:58,7,0,85 +BRDA:58,7,1,85 BRDA:90,8,0,8 BRDA:90,8,1,0 BRDA:90,9,0,8 diff --git a/package-lock.json b/package-lock.json index d2bb1bb..b622753 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "react-modal-global", - "version": "2.2.1", + "version": "2.3.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "react-modal-global", - "version": "2.2.1", + "version": "2.3.0", "license": "MIT", "dependencies": { "eventemitter3": "^5.0.0", diff --git a/package.json b/package.json index f549a0c..d3ad870 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-modal-global", - "version": "2.2.1", + "version": "2.3.0", "description": "Highly reusable React Modal that can be run from useEffect.", "main": "dist/index.ts", "types": "dist/index.d.ts", diff --git a/src/ModalController.ts b/src/ModalController.ts index 574c9c6..75e24b9 100644 --- a/src/ModalController.ts +++ b/src/ModalController.ts @@ -197,6 +197,12 @@ class ModalController = ModalContr modalWindows.forEach(modalWindow => this.close(modalWindow)) } + public closeByName(componentName: keyof Config["components"]): void { + const component = this.getNamedComponent(componentName) + + this.closeByComponent(component) + } + /** * Closes all modals. */ diff --git a/src/__tests__/ModalController.spec.ts b/src/__tests__/ModalController.spec.ts index 8c7f309..7eb4cfa 100644 --- a/src/__tests__/ModalController.spec.ts +++ b/src/__tests__/ModalController.spec.ts @@ -166,5 +166,22 @@ describe("ModalController (with container)", () => { controller.replaceNamed("test2", { b: 2 }) controller.replaceNamed("lazied", { controller: new ModalController }) }) + + it("closeByName", () => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + function Test1(props: { a: 1 }) { return null } + + const controller = new ModalController({ + components: { + test1: Test1, + } + }) + + controller.openNamed("test1", { a: 1 }) + expect(controller.active).toBe(true) + + controller.closeByName("test1") + expect(controller.active).toBe(false) + }) }) })