Skip to content

Commit

Permalink
fix: asset modal flushes when camera limiter is enabled (#261)
Browse files Browse the repository at this point in the history
* fix bug

* refactor
  • Loading branch information
rot1024 authored Jun 30, 2022
1 parent 85abadb commit fd46316
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 12 deletions.
13 changes: 11 additions & 2 deletions src/components/molecules/Common/AssetModal/AssetContainer/hooks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -99,16 +99,25 @@ export default ({
[onSearch],
);

const setLayoutTypeSmall = useCallback(() => setLayoutType("small"), []);
const setLayoutTypeMedium = useCallback(() => setLayoutType("medium"), []);
const setLayoutTypeList = useCallback(() => setLayoutType("list"), []);
const openDeleteModal = useCallback(() => setDeleteModalVisible(true), []);
const closeDeleteModal = useCallback(() => setDeleteModalVisible(false), []);

return {
layoutType,
iconChoice,
deleteModalVisible,
sortOptions,
setLayoutType,
setLayoutTypeSmall,
setLayoutTypeMedium,
setLayoutTypeList,
handleUploadToAsset,
handleReverse,
handleSearch,
setDeleteModalVisible,
openDeleteModal,
closeDeleteModal,
handleRemove,
};
};
Original file line number Diff line number Diff line change
Expand Up @@ -80,11 +80,14 @@ const AssetContainer: React.FC<Props> = ({
iconChoice,
deleteModalVisible,
sortOptions,
setLayoutType,
setLayoutTypeList,
setLayoutTypeMedium,
setLayoutTypeSmall,
handleUploadToAsset,
handleReverse,
handleSearch,
setDeleteModalVisible,
openDeleteModal,
closeDeleteModal,
handleRemove,
} = useHooks({
sort,
Expand Down Expand Up @@ -117,7 +120,7 @@ const AssetContainer: React.FC<Props> = ({
type="button"
buttonType="secondary"
disabled={selectedAssets?.length ? false : true}
onClick={() => setDeleteModalVisible(true)}
onClick={openDeleteModal}
/>
)}
</Flex>
Expand All @@ -135,19 +138,19 @@ const AssetContainer: React.FC<Props> = ({
<LayoutButtons justify="left">
<StyledIcon
icon="assetList"
onClick={() => setLayoutType("list")}
onClick={setLayoutTypeList}
selected={layoutType === "list"}
/>
{smallCardOnly ? (
<StyledIcon
icon="assetGridSmall"
onClick={() => setLayoutType("small")}
onClick={setLayoutTypeSmall}
selected={layoutType === "small"}
/>
) : (
<StyledIcon
icon="assetGrid"
onClick={() => setLayoutType("medium")}
onClick={setLayoutTypeMedium}
selected={layoutType === "medium"}
/>
)}
Expand Down Expand Up @@ -217,7 +220,7 @@ const AssetContainer: React.FC<Props> = ({
</AssetWrapper>
<AssetDeleteModal
isVisible={deleteModalVisible}
onClose={() => setDeleteModalVisible(false)}
onClose={closeDeleteModal}
handleRemove={handleRemove}
/>
</Wrapper>
Expand Down
8 changes: 5 additions & 3 deletions src/components/organisms/EarthEditor/PropertyPane/index.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import React, { ComponentType } from "react";
import React, { ComponentType, useCallback } from "react";

import Loading from "@reearth/components/atoms/Loading";
import Wrapper from "@reearth/components/molecules/EarthEditor/PropertyPane";
Expand Down Expand Up @@ -46,9 +46,11 @@ const PropertyPane: React.FC<Props> = ({ mode }) => {
updatePropertyItems,
} = useHooks(mode);

const AssetModalComponent: ComponentType<AssetModalProps> = ({ ...props }) => (
<AssetModal teamId={teamId} {...props} />
const AssetModalComponent: ComponentType<AssetModalProps> = useCallback(
({ ...props }) => <AssetModal teamId={teamId} {...props} />,
[teamId],
);

return (
<>
{pane && (
Expand Down

0 comments on commit fd46316

Please sign in to comment.