diff options
author | Ivan Chen <ivan@tagg.id> | 2021-05-25 17:13:12 -0400 |
---|---|---|
committer | Ivan Chen <ivan@tagg.id> | 2021-05-25 17:13:12 -0400 |
commit | 438ac0d1f82a95367b374b56f9c61a7a5802735c (patch) | |
tree | f262ba1f8678ef8d5dc32a9595707178a163da3b /src/components/common | |
parent | fd223276632af429e2dead7abc9149d812c6e4b9 (diff) |
Squashed commit of the following:
commit 7711d92c8dab4f00e36ad3bbca9bc202fa313e43
Author: Brian Kim <brian@tagg.id>
Date: Tue May 25 17:08:41 2021 -0400
Integrate with layering
commit cbd01996ae4784b737fb4b634eb0048bb7d85967
Author: Brian Kim <brian@tagg.id>
Date: Tue May 25 16:48:52 2021 -0400
Fix yarn
commit 39164064b903df36b7373e177d00c3307a8a311a
Author: Brian Kim <brian@tagg.id>
Date: Tue May 25 16:46:34 2021 -0400
Add horizontal scroll
commit 02841df862aa68dcf615d0264236d9a14b52befe
Author: Brian Kim <brian@tagg.id>
Date: Tue May 25 15:03:13 2021 -0400
Lint fixes
commit 5c6e8e453026005f6621efe751d90c76f457a72f
Author: Brian Kim <brian@tagg.id>
Date: Tue May 25 14:46:39 2021 -0400
Set boundaries, fix offset calculation, fix length and height calculation to be individual
commit 6d27d859fd5364556928e5a2feadad1aff4dc6b9
Author: Brian Kim <brian@tagg.id>
Date: Tue May 25 11:32:08 2021 -0400
Pause
Diffstat (limited to 'src/components/common')
-rw-r--r-- | src/components/common/MomentTags.tsx | 71 |
1 files changed, 55 insertions, 16 deletions
diff --git a/src/components/common/MomentTags.tsx b/src/components/common/MomentTags.tsx index 9a6cd08b..75a81814 100644 --- a/src/components/common/MomentTags.tsx +++ b/src/components/common/MomentTags.tsx @@ -17,27 +17,56 @@ const MomentTags: React.FC<MomentTagsProps> = ({ deleteFromList, }) => { const [offset, setOffset] = useState([0, 0]); - const [curStart, setCurStart] = useState([0, 0]); + const [curStart, setCurStart] = useState({}); const [imageDimensions, setImageDimensions] = useState([0, 0]); const [maxZIndex, setMaxZIndex] = useState(1); + const editCurStart = (idName: number, coords: number[]) => { + setCurStart((prev) => ({...prev, [idName]: coords})); + }; + useEffect(() => { - imageRef.current.measure((fx, fy, width, height, px, py) => { - setOffset([px, py]); - setImageDimensions([width, height]); - }); + setTimeout(() => { + imageRef.current.measure( + ( + fx: number, + fy: number, + width: number, + height: number, + _x: number, + _y: number, + ) => { + setOffset([fx, fy]); + setImageDimensions([width, height]); + }, + ); + }, 250); }, []); + useEffect(() => {}, [curStart]); + if (!tags) { return null; } return editing && deleteFromList ? ( <> - {tags.map((tag) => ( + {tags.map((tag, index) => ( <Draggable key={tag.user.id} - x={imageDimensions[0] / 2 - curStart[0] / 2 + offset[0]} - y={offset[1] + imageDimensions[1] / 2 - curStart[1] / 2} + x={ + curStart[index] + ? (imageDimensions[0] * tag.x) / 100 + + offset[0] - + curStart[index][0] / 2 + : (imageDimensions[0] * tag.x) / 100 + offset[0] + } + y={ + curStart[index] + ? (imageDimensions[1] * tag.y) / 100 + + offset[1] - + curStart[index][1] / 2 + : (imageDimensions[1] * tag.y) / 100 + offset[1] + offset[1] + } z={maxZIndex + 1} minX={offset[0]} minY={offset[1]} @@ -51,21 +80,31 @@ const MomentTags: React.FC<MomentTagsProps> = ({ <TaggDraggable taggedUser={tag.user} editingView={true} - deleteFromList={() => { - deleteFromList(tag.user); - }} - setStart={setCurStart} + deleteFromList={() => deleteFromList(tag.user)} + setStart={(coords: number[]) => editCurStart(index, coords)} /> </Draggable> ))} </> ) : ( <> - {tags.map((tag) => ( + {tags.map((tag, index) => ( <Draggable key={tag.user.id} - x={imageDimensions[0] / 2 - curStart[0] / 2 + tag.x} - y={imageDimensions[0] / 2 - curStart[0] / 2 + tag.y} + x={ + curStart[index] + ? (imageDimensions[0] * tag.x) / 100 + + offset[0] - + curStart[index][0] / 2 + : (imageDimensions[0] * tag.x) / 100 + offset[0] + } + y={ + curStart[index] + ? (imageDimensions[1] * tag.y) / 100 + + offset[1] - + curStart[index][1] / 2 + : (imageDimensions[1] * tag.y) / 100 + offset[1] + offset[1] + } z={tag.z} minX={offset[0]} minY={offset[1]} @@ -76,7 +115,7 @@ const MomentTags: React.FC<MomentTagsProps> = ({ taggedUser={tag.user} editingView={editing} deleteFromList={() => null} - setStart={setCurStart} + setStart={(coords: number[]) => editCurStart(index, coords)} /> </Draggable> ))} |