Просмотр исходного кода

Merge pull request #4592 from weseek/feat/77525-80783-control-selected-pages

feat: 77525 80783 control selected pages
Yohei Shiina 4 лет назад
Родитель
Сommit
bec353e50a

+ 3 - 1
packages/app/src/components/SearchPage/SearchResultList.tsx

@@ -16,6 +16,7 @@ type Props = {
   pages: ISearchedPage[],
   pages: ISearchedPage[],
   selectedPages: ISearchedPage[],
   selectedPages: ISearchedPage[],
   onClickInvoked?: (pageId: string) => void,
   onClickInvoked?: (pageId: string) => void,
+  onChangedInvoked?: (page: ISearchedPage) => void,
   searchResultCount?: number,
   searchResultCount?: number,
   activePage?: number,
   activePage?: number,
   pagingLimit?: number,
   pagingLimit?: number,
@@ -28,12 +29,13 @@ const SearchResultList: FC<Props> = (props:Props) => {
   const focusedPageId = focusedPage != null && focusedPage._id != null ? focusedPage._id : '';
   const focusedPageId = focusedPage != null && focusedPage._id != null ? focusedPage._id : '';
   return (
   return (
     <>
     <>
-      {props.pages.map((page) => {
+      {Array.isArray(props.pages) && props.pages.map((page) => {
         return (
         return (
           <SearchResultListItem
           <SearchResultListItem
             key={page._id}
             key={page._id}
             page={page}
             page={page}
             onClickInvoked={props.onClickInvoked}
             onClickInvoked={props.onClickInvoked}
+            onChangedInvoked={props.onChangedInvoked}
             isSelected={page._id === focusedPageId || false}
             isSelected={page._id === focusedPageId || false}
           />
           />
         );
         );

+ 8 - 8
packages/app/src/components/SearchPage/SearchResultListItem.tsx

@@ -69,6 +69,7 @@ const PageItemControl: FC<PageItemControlProps> = (props: {page: ISearchedPage})
 type Props = {
 type Props = {
   page: ISearchedPage,
   page: ISearchedPage,
   isSelected: boolean,
   isSelected: boolean,
+  onChangedInvoked?: (page: ISearchedPage) => void,
   onClickInvoked?: (pageId: string) => void,
   onClickInvoked?: (pageId: string) => void,
 }
 }
 
 
@@ -81,23 +82,22 @@ const SearchResultListItem: FC<Props> = (props:Props) => {
   const dPagePath = new DevidedPagePath(page.path, false, true);
   const dPagePath = new DevidedPagePath(page.path, false, true);
   const pagePathElem = <PagePathLabel page={page} isFormerOnly />;
   const pagePathElem = <PagePathLabel page={page} isFormerOnly />;
 
 
-  const onClickInvoked = (pageId) => {
-    if (props.onClickInvoked != null) {
-      props.onClickInvoked(pageId);
-    }
-  };
-
   return (
   return (
     <li key={page._id} className={`page-list-li search-page-item w-100 border-bottom pr-4 list-group-item-action ${isSelected ? 'active' : ''}`}>
     <li key={page._id} className={`page-list-li search-page-item w-100 border-bottom pr-4 list-group-item-action ${isSelected ? 'active' : ''}`}>
       <a
       <a
         className="d-block pt-3"
         className="d-block pt-3"
         href={pageId}
         href={pageId}
-        onClick={() => onClickInvoked(page._id)}
+        onClick={() => { if (props.onClickInvoked != null) { props.onClickInvoked(page._id) } }}
       >
       >
         <div className="d-flex">
         <div className="d-flex">
           {/* checkbox */}
           {/* checkbox */}
           <div className="form-check my-auto mr-3">
           <div className="form-check my-auto mr-3">
-            <input className="form-check-input my-auto" type="checkbox" value="" id="flexCheckDefault" />
+            <input
+              className="form-check-input my-auto"
+              type="checkbox"
+              id="flexCheckDefault"
+              onClick={() => { if (props.onChangedInvoked != null) { props.onChangedInvoked(page) } }}
+            />
           </div>
           </div>
           <div className="w-100">
           <div className="w-100">
             {/* page path */}
             {/* page path */}