Browse Source

use label element and set htmlFor

Yuki Takei 1 year ago
parent
commit
665ee204e9

+ 1 - 0
apps/app/src/components/PrivateLegacyPages.tsx

@@ -355,6 +355,7 @@ const PrivateLegacyPages = (): JSX.Element => {
       <div className="search-control d-flex align-items-center">
       <div className="search-control d-flex align-items-center">
         <div className="d-flex ps-md-2">
         <div className="d-flex ps-md-2">
           <OperateAllControl
           <OperateAllControl
+            inputClassName="ms-2"
             ref={selectAllControlRef}
             ref={selectAllControlRef}
             isCheckboxDisabled={isCheckboxDisabled}
             isCheckboxDisabled={isCheckboxDisabled}
             onCheckboxChanged={selectAllCheckboxChangedHandler}
             onCheckboxChanged={selectAllCheckboxChangedHandler}

+ 8 - 1
apps/app/src/components/SearchPage.tsx

@@ -200,11 +200,18 @@ export const SearchPage = (): JSX.Element => {
           <div className="d-flex align-items-center py-2">
           <div className="d-flex align-items-center py-2">
             <div className="ms-4">
             <div className="ms-4">
               <OperateAllControl
               <OperateAllControl
+                inputId="cb-select-all"
+                inputClassName="form-check-input"
                 ref={selectAllControlRef}
                 ref={selectAllControlRef}
                 isCheckboxDisabled={hitsCount === 0}
                 isCheckboxDisabled={hitsCount === 0}
                 onCheckboxChanged={selectAllCheckboxChangedHandler}
                 onCheckboxChanged={selectAllCheckboxChangedHandler}
               >
               >
-                <span className="ms-2">{t('search_result.select_all')}</span>
+                <label
+                  className="form-check-label ms-2"
+                  htmlFor="cb-select-all"
+                >
+                  {t('search_result.select_all')}
+                </label>
               </OperateAllControl>
               </OperateAllControl>
             </div>
             </div>
 
 

+ 6 - 2
apps/app/src/components/SearchPage/OperateAllControl.tsx

@@ -7,6 +7,8 @@ import type { ISelectableAndIndeterminatable } from '~/client/interfaces/selecta
 import type { IndeterminateInputElement } from '~/interfaces/indeterminate-input-elm';
 import type { IndeterminateInputElement } from '~/interfaces/indeterminate-input-elm';
 
 
 type Props = {
 type Props = {
+  inputId?: string,
+  inputClassName?: string,
   isCheckboxDisabled?: boolean,
   isCheckboxDisabled?: boolean,
   onCheckboxChanged?: (isChecked: boolean) => void,
   onCheckboxChanged?: (isChecked: boolean) => void,
   children?: React.ReactNode,
   children?: React.ReactNode,
@@ -14,6 +16,8 @@ type Props = {
 
 
 const OperateAllControlSubstance: ForwardRefRenderFunction<ISelectableAndIndeterminatable, Props> = (props: Props, ref): JSX.Element => {
 const OperateAllControlSubstance: ForwardRefRenderFunction<ISelectableAndIndeterminatable, Props> = (props: Props, ref): JSX.Element => {
   const {
   const {
+    inputId,
+    inputClassName = '',
     isCheckboxDisabled,
     isCheckboxDisabled,
     onCheckboxChanged,
     onCheckboxChanged,
     children,
     children,
@@ -54,10 +58,10 @@ const OperateAllControlSubstance: ForwardRefRenderFunction<ISelectableAndIndeter
   return (
   return (
     <div className="d-flex align-items-center">
     <div className="d-flex align-items-center">
       <Input
       <Input
+        id={inputId}
         type="checkbox"
         type="checkbox"
-        id="cb-check-all"
         data-testid="cb-select-all"
         data-testid="cb-select-all"
-        className="ms-2"
+        className={inputClassName}
         innerRef={selectAllCheckboxElm}
         innerRef={selectAllCheckboxElm}
         disabled={isCheckboxDisabled}
         disabled={isCheckboxDisabled}
         onChange={checkboxChangedHandler}
         onChange={checkboxChangedHandler}