react-select-media-devices-modal 0.0.7 → 0.0.9

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/README.md CHANGED
@@ -1,7 +1,10 @@
1
1
  # react-select-media-devices-modal
2
2
 
3
3
  [![npm version](https://badge.fury.io/js/react-select-media-devices-modal.svg)](https://badge.fury.io/js/react-select-media-devices-modal)
4
+ [![Test](https://github.com/kadoshita/react-select-media-devices-modal/actions/workflows/test.yaml/badge.svg?branch=master)](https://github.com/kadoshita/react-select-media-devices-modal/actions/workflows/test.yaml)
5
+ [![E2E Test](https://github.com/kadoshita/react-select-media-devices-modal/actions/workflows/e2e-test.yaml/badge.svg)](https://github.com/kadoshita/react-select-media-devices-modal/actions/workflows/e2e-test.yaml)
4
6
  [![Release](https://github.com/kadoshita/react-select-media-devices-modal/actions/workflows/release.yaml/badge.svg)](https://github.com/kadoshita/react-select-media-devices-modal/actions/workflows/release.yaml)
7
+ [![Deploy to GitHub Pages](https://github.com/kadoshita/react-select-media-devices-modal/actions/workflows/deploy.yaml/badge.svg?branch=master)](https://github.com/kadoshita/react-select-media-devices-modal/actions/workflows/deploy.yaml)
5
8
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
9
 
7
10
  A React component library for select media devices.
@@ -22,7 +25,7 @@ npm install --save react-select-media-devices-modal
22
25
 
23
26
  ## Usage
24
27
 
25
- ```tsx
28
+ ```jsx
26
29
  import { useState } from 'react';
27
30
  import { SelectMediaDevicesModal } from 'react-select-media-devices-modal';
28
31
 
@@ -1,94 +1,99 @@
1
- import e, { useState as l, useEffect as j } from "react";
2
- const G = "_background_a8nxk_1", P = "_modal_a8nxk_13", R = "_deviceLists_a8nxk_19", S = "_buttons_a8nxk_23", T = "_chancelButton_a8nxk_30", U = "_confirmButton_a8nxk_32", s = {
3
- background: G,
4
- modal: P,
5
- deviceLists: R,
6
- buttons: S,
7
- chancelButton: T,
8
- confirmButton: U
9
- }, $ = () => {
1
+ import e, { useState as l, useEffect as V } from "react";
2
+ const x = "_background_1djbv_1", G = "_modal_1djbv_13", P = "_deviceLists_1djbv_20", R = "_buttons_1djbv_24", S = "_chancelButton_1djbv_31", T = "_confirmButton_1djbv_33", d = {
3
+ background: x,
4
+ modal: G,
5
+ deviceLists: P,
6
+ buttons: R,
7
+ chancelButton: S,
8
+ confirmButton: T
9
+ }, U = () => {
10
10
  const [n, c] = l([]);
11
11
  return [n, () => {
12
12
  (async () => {
13
- const u = await navigator.mediaDevices.getUserMedia({ audio: !0, video: !0 }), a = await navigator.mediaDevices.enumerateDevices();
14
- c(a), u.getTracks().forEach((i) => i.stop());
13
+ const o = await navigator.mediaDevices.getUserMedia({ audio: !0, video: !0 }), a = await navigator.mediaDevices.enumerateDevices();
14
+ c(a), o.getTracks().forEach((i) => i.stop());
15
15
  })();
16
16
  }];
17
- }, q = ({ name: n, value: c }) => /* @__PURE__ */ e.createElement("option", { value: c }, n), D = ({ devices: n, label: c, onChange: o }) => {
17
+ }, z = ({ name: n, value: c }) => /* @__PURE__ */ e.createElement("option", { value: c }, n), H = "_deviceList_1bfq1_1", J = "_select_1bfq1_5", C = {
18
+ deviceList: H,
19
+ select: J
20
+ }, b = ({ devices: n, label: c, onChange: s }) => {
18
21
  if (n === void 0)
19
22
  return /* @__PURE__ */ e.createElement(e.Fragment, null);
20
- const u = (i) => {
21
- o(i.target.value);
23
+ const o = (i) => {
24
+ s(i.target.value);
22
25
  }, a = `device-select-${c.toLowerCase().replace(/\s/g, "-")}`;
23
- return /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement("label", { htmlFor: a }, c), /* @__PURE__ */ e.createElement("select", { id: a, onChange: u }, n.map((i, r) => /* @__PURE__ */ e.createElement(q, { value: i.deviceId, name: i.label, key: r }))));
24
- }, _ = ({ className: n, children: c, onClick: o }) => /* @__PURE__ */ e.createElement("button", { onClick: o, className: [n].filter(Boolean).join(" ") }, c), H = ({
26
+ return /* @__PURE__ */ e.createElement("div", { className: C.deviceList }, /* @__PURE__ */ e.createElement("label", { htmlFor: a }, c), /* @__PURE__ */ e.createElement("select", { className: C.select, id: a, onChange: o }, n.map((i, r) => /* @__PURE__ */ e.createElement(z, { value: i.deviceId, name: i.label, key: r }))));
27
+ }, K = "_button_keu24_1", Q = {
28
+ button: K
29
+ }, k = ({ className: n, children: c, onClick: s }) => /* @__PURE__ */ e.createElement("button", { onClick: s, className: [Q.button, n].filter(Boolean).join(" ") }, c), X = ({
25
30
  isSelectAudioInput: n = !0,
26
31
  isSelectAudioOutput: c = !0,
27
- isSelectVideoInput: o = !0,
28
- open: u,
32
+ isSelectVideoInput: s = !0,
33
+ open: o,
29
34
  audioInputDeviceLabel: a = "audio input device",
30
35
  audioOutputDeviceLabel: i = "audio output device",
31
36
  videoInputDeviceLabel: r = "video input device",
32
37
  confirmButtonText: I = "Confirm",
33
- cancelButtonText: b = "Cancel",
34
- allowOutsideClick: k = !0,
38
+ cancelButtonText: L = "Cancel",
39
+ allowOutsideClick: g = !0,
35
40
  onDeviceSelected: B,
36
- onDeviceSelectCanceled: h
41
+ onDeviceSelectCanceled: D
37
42
  }) => {
38
- const [v, x] = $(), [E, L] = l(), [f, N] = l(), [C, O] = l(), m = v.filter((t) => t.kind === "audioinput"), p = v.filter((t) => t.kind === "audiooutput"), g = v.filter((t) => t.kind === "videoinput");
39
- j(() => {
40
- x();
41
- }, []);
42
- const A = () => {
43
+ const [v, N] = U(), [f, j] = l(), [h, O] = l(), [E, A] = l(), m = v.filter((t) => t.kind === "audioinput"), p = v.filter((t) => t.kind === "audiooutput"), _ = v.filter((t) => t.kind === "videoinput");
44
+ V(() => {
45
+ o && N();
46
+ }, [o]);
47
+ const F = () => {
43
48
  B({
44
- audioInput: E !== void 0 ? E : m[0],
45
- audioOutput: f !== void 0 ? f : p[0],
46
- videoInput: C !== void 0 ? C : g[0]
49
+ audioInput: f !== void 0 ? f : m[0],
50
+ audioOutput: h !== void 0 ? h : p[0],
51
+ videoInput: E !== void 0 ? E : _[0]
47
52
  });
48
- }, F = () => {
49
- h();
50
- }, M = (t) => {
51
- L(m.find((d) => d.deviceId === t));
53
+ }, M = () => {
54
+ D();
55
+ }, $ = (t) => {
56
+ j(m.find((u) => u.deviceId === t));
57
+ }, q = (t) => {
58
+ O(p.find((u) => u.deviceId === t));
52
59
  }, w = (t) => {
53
- N(p.find((d) => d.deviceId === t));
54
- }, y = (t) => {
55
- O(g.find((d) => d.deviceId === t));
56
- }, V = () => {
57
- h();
60
+ A(_.find((u) => u.deviceId === t));
61
+ }, y = () => {
62
+ D();
58
63
  };
59
- return u ? /* @__PURE__ */ e.createElement("div", { className: s.background, ...k ? { onClick: V } : {} }, /* @__PURE__ */ e.createElement(
64
+ return o ? /* @__PURE__ */ e.createElement("div", { className: d.background, ...g ? { onClick: y } : {} }, /* @__PURE__ */ e.createElement(
60
65
  "div",
61
66
  {
62
- className: s.modal,
63
- ...k ? {
67
+ className: d.modal,
68
+ ...g ? {
64
69
  onClick: (t) => t.stopPropagation()
65
70
  } : {}
66
71
  },
67
- /* @__PURE__ */ e.createElement("div", { className: s.deviceLists }, n && /* @__PURE__ */ e.createElement(
68
- D,
72
+ /* @__PURE__ */ e.createElement("div", { className: d.deviceLists }, n && /* @__PURE__ */ e.createElement(
73
+ b,
69
74
  {
70
75
  label: a,
71
76
  devices: m,
72
- onChange: M
77
+ onChange: $
73
78
  }
74
79
  ), c && /* @__PURE__ */ e.createElement(
75
- D,
80
+ b,
76
81
  {
77
82
  label: i,
78
83
  devices: p,
79
- onChange: w
84
+ onChange: q
80
85
  }
81
- ), o && /* @__PURE__ */ e.createElement(
82
- D,
86
+ ), s && /* @__PURE__ */ e.createElement(
87
+ b,
83
88
  {
84
89
  label: r,
85
- devices: g,
86
- onChange: y
90
+ devices: _,
91
+ onChange: w
87
92
  }
88
93
  )),
89
- /* @__PURE__ */ e.createElement("div", { className: s.buttons }, /* @__PURE__ */ e.createElement(_, { className: s.cancelButton, onClick: F }, b), /* @__PURE__ */ e.createElement(_, { className: s.confirmButton, onClick: A }, I))
94
+ /* @__PURE__ */ e.createElement("div", { className: d.buttons }, /* @__PURE__ */ e.createElement(k, { className: d.cancelButton, onClick: M }, L), /* @__PURE__ */ e.createElement(k, { className: d.confirmButton, onClick: F }, I))
90
95
  )) : /* @__PURE__ */ e.createElement(e.Fragment, null);
91
96
  };
92
97
  export {
93
- H as SelectMediaDevicesModal
98
+ X as SelectMediaDevicesModal
94
99
  };
@@ -1 +1 @@
1
- (function(c,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],e):(c=typeof globalThis<"u"?globalThis:c||self,e(c.ReactSelectMediaDevicesModal={},c.React))})(this,function(c,e){"use strict";const s={background:"_background_a8nxk_1",modal:"_modal_a8nxk_13",deviceLists:"_deviceLists_a8nxk_19",buttons:"_buttons_a8nxk_23",chancelButton:"_chancelButton_a8nxk_30",confirmButton:"_confirmButton_a8nxk_32"},b=()=>{const[n,i]=e.useState([]);return[n,()=>{(async()=>{const d=await navigator.mediaDevices.getUserMedia({audio:!0,video:!0}),u=await navigator.mediaDevices.enumerateDevices();i(u),d.getTracks().forEach(o=>o.stop())})()}]},I=({name:n,value:i})=>e.createElement("option",{value:i},n),r=({devices:n,label:i,onChange:a})=>{if(n===void 0)return e.createElement(e.Fragment,null);const d=o=>{a(o.target.value)},u=`device-select-${i.toLowerCase().replace(/\s/g,"-")}`;return e.createElement(e.Fragment,null,e.createElement("label",{htmlFor:u},i),e.createElement("select",{id:u,onChange:d},n.map((o,v)=>e.createElement(I,{value:o.deviceId,name:o.label,key:v}))))},h=({className:n,children:i,onClick:a})=>e.createElement("button",{onClick:a,className:[n].filter(Boolean).join(" ")},i),B=({isSelectAudioInput:n=!0,isSelectAudioOutput:i=!0,isSelectVideoInput:a=!0,open:d,audioInputDeviceLabel:u="audio input device",audioOutputDeviceLabel:o="audio output device",videoInputDeviceLabel:v="video input device",confirmButtonText:x="Confirm",cancelButtonText:L="Cancel",allowOutsideClick:D=!0,onDeviceSelected:M,onDeviceSelectCanceled:k})=>{const[m,S]=b(),[E,N]=e.useState(),[C,y]=e.useState(),[_,O]=e.useState(),p=m.filter(t=>t.kind==="audioinput"),f=m.filter(t=>t.kind==="audiooutput"),g=m.filter(t=>t.kind==="videoinput");e.useEffect(()=>{S()},[]);const A=()=>{M({audioInput:E!==void 0?E:p[0],audioOutput:C!==void 0?C:f[0],videoInput:_!==void 0?_:g[0]})},F=()=>{k()},T=t=>{N(p.find(l=>l.deviceId===t))},j=t=>{y(f.find(l=>l.deviceId===t))},w=t=>{O(g.find(l=>l.deviceId===t))},P=()=>{k()};return d?e.createElement("div",{className:s.background,...D?{onClick:P}:{}},e.createElement("div",{className:s.modal,...D?{onClick:t=>t.stopPropagation()}:{}},e.createElement("div",{className:s.deviceLists},n&&e.createElement(r,{label:u,devices:p,onChange:T}),i&&e.createElement(r,{label:o,devices:f,onChange:j}),a&&e.createElement(r,{label:v,devices:g,onChange:w})),e.createElement("div",{className:s.buttons},e.createElement(h,{className:s.cancelButton,onClick:F},L),e.createElement(h,{className:s.confirmButton,onClick:A},x)))):e.createElement(e.Fragment,null)};c.SelectMediaDevicesModal=B,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});
1
+ (function(c,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],e):(c=typeof globalThis<"u"?globalThis:c||self,e(c.ReactSelectMediaDevicesModal={},c.React))})(this,function(c,e){"use strict";const d={background:"_background_1djbv_1",modal:"_modal_1djbv_13",deviceLists:"_deviceLists_1djbv_20",buttons:"_buttons_1djbv_24",chancelButton:"_chancelButton_1djbv_31",confirmButton:"_confirmButton_1djbv_33"},I=()=>{const[n,i]=e.useState([]);return[n,()=>{(async()=>{const s=await navigator.mediaDevices.getUserMedia({audio:!0,video:!0}),a=await navigator.mediaDevices.enumerateDevices();i(a),s.getTracks().forEach(o=>o.stop())})()}]},L=({name:n,value:i})=>e.createElement("option",{value:i},n),_={deviceList:"_deviceList_1bfq1_1",select:"_select_1bfq1_5"},r=({devices:n,label:i,onChange:u})=>{if(n===void 0)return e.createElement(e.Fragment,null);const s=o=>{u(o.target.value)},a=`device-select-${i.toLowerCase().replace(/\s/g,"-")}`;return e.createElement("div",{className:_.deviceList},e.createElement("label",{htmlFor:a},i),e.createElement("select",{className:_.select,id:a,onChange:s},n.map((o,v)=>e.createElement(L,{value:o.deviceId,name:o.label,key:v}))))},B={button:"_button_keu24_1"},g=({className:n,children:i,onClick:u})=>e.createElement("button",{onClick:u,className:[B.button,n].filter(Boolean).join(" ")},i),j=({isSelectAudioInput:n=!0,isSelectAudioOutput:i=!0,isSelectVideoInput:u=!0,open:s,audioInputDeviceLabel:a="audio input device",audioOutputDeviceLabel:o="audio output device",videoInputDeviceLabel:v="video input device",confirmButtonText:N="Confirm",cancelButtonText:M="Cancel",allowOutsideClick:h=!0,onDeviceSelected:S,onDeviceSelectCanceled:D})=>{const[m,y]=I(),[E,O]=e.useState(),[C,A]=e.useState(),[k,T]=e.useState(),f=m.filter(t=>t.kind==="audioinput"),p=m.filter(t=>t.kind==="audiooutput"),b=m.filter(t=>t.kind==="videoinput");e.useEffect(()=>{s&&y()},[s]);const q=()=>{S({audioInput:E!==void 0?E:f[0],audioOutput:C!==void 0?C:p[0],videoInput:k!==void 0?k:b[0]})},F=()=>{D()},$=t=>{O(f.find(l=>l.deviceId===t))},w=t=>{A(p.find(l=>l.deviceId===t))},x=t=>{T(b.find(l=>l.deviceId===t))},P=()=>{D()};return s?e.createElement("div",{className:d.background,...h?{onClick:P}:{}},e.createElement("div",{className:d.modal,...h?{onClick:t=>t.stopPropagation()}:{}},e.createElement("div",{className:d.deviceLists},n&&e.createElement(r,{label:a,devices:f,onChange:$}),i&&e.createElement(r,{label:o,devices:p,onChange:w}),u&&e.createElement(r,{label:v,devices:b,onChange:x})),e.createElement("div",{className:d.buttons},e.createElement(g,{className:d.cancelButton,onClick:F},M),e.createElement(g,{className:d.confirmButton,onClick:q},N)))):e.createElement(e.Fragment,null)};c.SelectMediaDevicesModal=j,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- ._background_a8nxk_1{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0000004d;display:flex;align-items:center;justify-content:center}._modal_a8nxk_13{background:white;padding:16px;border-radius:8px}._deviceLists_a8nxk_19{display:grid}._buttons_a8nxk_23{padding-top:8px;display:flex;align-items:center;justify-content:right}._confirmButton_a8nxk_32{margin-left:4px}
1
+ ._background_1djbv_1{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0000004d;display:flex;align-items:center;justify-content:center}._modal_1djbv_13{background:white;padding:16px;border-radius:8px;min-width:270px}._deviceLists_1djbv_20{display:grid}._buttons_1djbv_24{padding-top:16px;display:flex;align-items:center;justify-content:right}._confirmButton_1djbv_33{margin-left:4px}._deviceList_1bfq1_1{padding-top:8px}._select_1bfq1_5{margin-top:4px;border-radius:4px;height:32px;display:flex;align-items:center;justify-content:right;width:100%}._button_keu24_1{border-radius:4px;height:32px;padding-left:16px;padding-right:16px;background-color:#fff;border-width:1px}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "react-select-media-devices-modal",
3
3
  "description": "A React component library for select media devices",
4
- "version": "0.0.7",
4
+ "version": "0.0.9",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
@@ -25,6 +25,7 @@
25
25
  "keywords": [
26
26
  "react",
27
27
  "modal",
28
+ "webrtc",
28
29
  "compoennt",
29
30
  "mediadevices",
30
31
  "getusermedia",