@mrshmllw/smores-react 2.12.0 → 2.12.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.
@@ -15,10 +15,10 @@ import { theme } from '../theme';
|
|
15
15
|
import { visuallyHidden } from '../utils/visuallyHidden';
|
16
16
|
import { focusOutline } from '../utils/focusOutline';
|
17
17
|
import { Box } from '../Box';
|
18
|
-
export const RadioElement = forwardRef(function RadioElement(_a) {
|
18
|
+
export const RadioElement = forwardRef(function RadioElement(_a, ref) {
|
19
19
|
var { name, id, value, checked, onChange, isError } = _a, marginProps = __rest(_a, ["name", "id", "value", "checked", "onChange", "isError"]);
|
20
20
|
return (React.createElement(React.Fragment, null,
|
21
|
-
React.createElement(StyledInput, { type: "radio", name: name, id: id, value: `${value}`, checked: checked, onChange: () => onChange(value) }),
|
21
|
+
React.createElement(StyledInput, { ref: ref, type: "radio", name: name, id: id, value: `${value}`, checked: checked, onChange: () => onChange(value) }),
|
22
22
|
React.createElement(RadioCircle, Object.assign({ isError: isError, checked: checked }, marginProps))));
|
23
23
|
});
|
24
24
|
const StyledInput = styled.input `
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"RadioElement.js","sourceRoot":"","sources":["../../src/RadioGroup/RadioElement.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAEtC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAEhC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEpD,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAY5B,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CACpC,SAAS,YAAY,
|
1
|
+
{"version":3,"file":"RadioElement.js","sourceRoot":"","sources":["../../src/RadioGroup/RadioElement.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAEtC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAEhC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEpD,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAY5B,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CACpC,SAAS,YAAY,CACnB,EAA+D,EAC/D,GAAG;QADH,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,OAAkB,EAAb,WAAW,cAA7D,yDAA+D,CAAF;IAG7D,OAAO,CACL;QACE,oBAAC,WAAW,IACV,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,GAAG,KAAK,EAAE,EACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAC/B;QACF,oBAAC,WAAW,kBAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,IAAM,WAAW,EAAI,CACnE,CACJ,CAAA;AACH,CAAC,CACF,CAAA;AAED,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAA;IAC5B,cAAc;CACjB,CAAA;AAED,MAAM,UAAU,GAAG,EAAE,CAAA;AAErB,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAwC;;WAE5D,UAAU;YACT,UAAU;mBACH,UAAU;sBACP,KAAK,CAAC,MAAM,CAAC,KAAK;;MAElC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;;IAExE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CACzB,CAAC,OAAO;IACR,CAAC,OAAO;IACR;;0BAEsB,KAAK,CAAC,MAAM,CAAC,SAAS;;GAE7C;;IAEC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CACzB,OAAO;IACP,qBACE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,SAC9C,GAAG;;IAEH,YAAY,CAAC,EAAE,QAAQ,EAAE,GAAG,WAAW,oBAAoB,EAAE,CAAC;CACjE,CAAA"}
|
@@ -11,6 +11,9 @@ export type RadioGroupProps<Value extends BaseValueType = BaseValueType> = {
|
|
11
11
|
value: Value;
|
12
12
|
displayType?: DisplayType;
|
13
13
|
} & CommonFieldProps;
|
14
|
+
export type RadioGroupElement = {
|
15
|
+
focus: VoidFunction;
|
16
|
+
};
|
14
17
|
export declare const RadioGroup: <Value extends BaseValueType = BaseValueType>(p: {
|
15
18
|
options: {
|
16
19
|
visual?: string | undefined;
|
@@ -9,17 +9,35 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
9
9
|
}
|
10
10
|
return t;
|
11
11
|
};
|
12
|
-
import React, { forwardRef } from 'react';
|
12
|
+
import React, { forwardRef, useImperativeHandle, useRef, } from 'react';
|
13
13
|
import styled from 'styled-components';
|
14
14
|
import { useUniqueId } from '../utils/id';
|
15
15
|
import { Fieldset } from '../fields/Fieldset';
|
16
16
|
import { RadioItem } from './RadioItem';
|
17
17
|
import { ITEM_GAP } from './constants';
|
18
|
-
const RadioGroupComponent = (_a) => {
|
18
|
+
const RadioGroupComponent = (_a, ref) => {
|
19
19
|
var { options, onChange, value, displayType = 'normal', renderAsTitle = false, error = false } = _a, fieldProps = __rest(_a, ["options", "onChange", "value", "displayType", "renderAsTitle", "error"]);
|
20
20
|
const name = useUniqueId();
|
21
|
+
const optionRefs = useRef([]);
|
22
|
+
useImperativeHandle(ref, () => {
|
23
|
+
return {
|
24
|
+
focus: () => {
|
25
|
+
var _a;
|
26
|
+
const selectedIndex = options.findIndex((item) => item.value === value);
|
27
|
+
const elementToFocus = selectedIndex === -1 ? 0 : selectedIndex;
|
28
|
+
(_a = optionRefs.current[elementToFocus].current) === null || _a === void 0 ? void 0 : _a.focus();
|
29
|
+
},
|
30
|
+
};
|
31
|
+
});
|
21
32
|
return (React.createElement(Fieldset, Object.assign({ renderAsTitle: renderAsTitle, error: error }, fieldProps),
|
22
|
-
React.createElement(RadioItemList, { displayType: displayType }, options.map((option) =>
|
33
|
+
React.createElement(RadioItemList, { displayType: displayType }, options.map((option, index) => {
|
34
|
+
const isSelected = option.value === value;
|
35
|
+
return (React.createElement(RadioItem, { ref: (radioOptionRef) => {
|
36
|
+
optionRefs.current[index] = {
|
37
|
+
current: radioOptionRef,
|
38
|
+
};
|
39
|
+
}, key: `${option.value}`, name: name, visual: option.visual, label: option.label, value: option.value, checked: isSelected, onChange: onChange, displayType: displayType, isError: error }));
|
40
|
+
}))));
|
23
41
|
};
|
24
42
|
export const RadioGroup = forwardRef(RadioGroupComponent);
|
25
43
|
const RadioItemList = styled.div `
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"RadioGroup.js","sourceRoot":"","sources":["../../src/RadioGroup/RadioGroup.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,
|
1
|
+
{"version":3,"file":"RadioGroup.js","sourceRoot":"","sources":["../../src/RadioGroup/RadioGroup.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAEZ,UAAU,EAGV,mBAAmB,EACnB,MAAM,GACP,MAAM,OAAO,CAAA;AACd,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAiBtC,MAAM,mBAAmB,GAAG,CAC1B,EAQyB,EACzB,GAAoC,EACpC,EAAE;QAVF,EACE,OAAO,EACP,QAAQ,EACR,KAAK,EACL,WAAW,GAAG,QAAQ,EACtB,aAAa,GAAG,KAAK,EACrB,KAAK,GAAG,KAAK,OAEU,EADpB,UAAU,cAPf,yEAQC,CADc;IAIf,MAAM,IAAI,GAAG,WAAW,EAAE,CAAA;IAE1B,MAAM,UAAU,GAAG,MAAM,CAAgC,EAAE,CAAC,CAAA;IAC5D,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE;QAC5B,OAAO;YACL,KAAK,EAAE,GAAG,EAAE;;gBACV,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAA;gBAEvE,MAAM,cAAc,GAAG,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAA;gBAC/D,MAAA,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAA;YACrD,CAAC;SACF,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,CACL,oBAAC,QAAQ,kBAAC,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,IAAM,UAAU;QAClE,oBAAC,aAAa,IAAC,WAAW,EAAE,WAAW,IACpC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAC7B,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,KAAK,KAAK,CAAA;YAEzC,OAAO,CACL,oBAAC,SAAS,IACR,GAAG,EAAE,CAAC,cAAc,EAAE,EAAE;oBACtB,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG;wBAC1B,OAAO,EAAE,cAAc;qBACxB,CAAA;gBACH,CAAC,EACD,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,EACtB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,KAAK,GACd,CACH,CAAA;QACH,CAAC,CAAC,CACY,CACP,CACZ,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC,mBAAmB,CAIhC,CAAA;AAExB,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAsC;;SAE7D,QAAQ;;IAEb,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE;IACpB,IAAI,WAAW,KAAK,iBAAiB,EAAE;QACrC,OAAO;;;OAGN,CAAA;KACF;IAED,OAAO,yBAAyB,CAAA;AAClC,CAAC;CACF,CAAA"}
|