aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGeorge Rusu <george@tagg.id>2021-05-25 16:29:54 -0700
committerGeorge Rusu <george@tagg.id>2021-05-25 16:29:54 -0700
commit10d3ed80b3b84956cf7364140313ea465a95ba8b (patch)
treeab01a2fdccaad4c22dc5d7a16e44b59547e60406 /src
parent6fd5a5516595d1731af35e1cef9607ce7b32e8f6 (diff)
Currently pushes tags offscreen
Diffstat (limited to 'src')
-rw-r--r--src/components/common/Draggable.tsx3
-rw-r--r--src/components/common/MomentTags.tsx16
-rw-r--r--src/components/taggs/TaggDraggable.tsx19
3 files changed, 32 insertions, 6 deletions
diff --git a/src/components/common/Draggable.tsx b/src/components/common/Draggable.tsx
index 15ba3325..0a480e92 100644
--- a/src/components/common/Draggable.tsx
+++ b/src/components/common/Draggable.tsx
@@ -60,6 +60,7 @@ interface IProps {
maxX?: number;
maxY?: number;
onDragStart?: () => number;
+ measureAdd?: () => void;
}
export default function Draggable(props: IProps) {
@@ -90,6 +91,7 @@ export default function Draggable(props: IProps) {
maxX,
maxY,
onDragStart,
+ measureAdd,
} = props;
// The Animated object housing our xy value so that we can spring back
@@ -139,6 +141,7 @@ export default function Draggable(props: IProps) {
}
if (onRelease) {
onRelease(e, gestureState);
+ measureAdd();
}
if (!shouldReverse) {
pan.current.flattenOffset();
diff --git a/src/components/common/MomentTags.tsx b/src/components/common/MomentTags.tsx
index 56113758..2ba16a6b 100644
--- a/src/components/common/MomentTags.tsx
+++ b/src/components/common/MomentTags.tsx
@@ -21,19 +21,19 @@ const MomentTags: React.FC<MomentTagsProps> = ({
const [curStart, setCurStart] = useState({});
const [maxZIndex, setMaxZIndex] = useState(1);
- const editCurStart = (idName: number, coords: number[]) => {
- setCurStart((prev) => ({...prev, [idName]: coords}));
+ const editCurStart = (idName: number, dimensions: number[]) => {
+ setCurStart((prev) => ({...prev, [idName]: dimensions}));
};
useEffect(() => {
setTimeout(() => {
imageRef.current.measure(
(
- fx: number,
+ fx: number, // location of ref relative to parent element
fy: number,
width: number,
height: number,
- _x: number,
+ _x: number, // location of ref relative to entire screen
_y: number,
) => {
setOffset([fx, fy]);
@@ -46,11 +46,19 @@ const MomentTags: React.FC<MomentTagsProps> = ({
if (!tags) {
return null;
}
+
+ const measureAdd = () => {};
+
return editing && deleteFromList ? (
<>
{tags.map((tag, index) => (
<Draggable
key={tag.user.id}
+ measureAdd={measureAdd}
+ //imageDimensions width, height
+ // tag.x, tag.y % from backend
+ // offset - the padding/offset
+ //curStart - list ofevery momentTag's dimensions
x={
curStart[index]
? (imageDimensions[0] * tag.x) / 100 +
diff --git a/src/components/taggs/TaggDraggable.tsx b/src/components/taggs/TaggDraggable.tsx
index 1c7b2524..7be4a88f 100644
--- a/src/components/taggs/TaggDraggable.tsx
+++ b/src/components/taggs/TaggDraggable.tsx
@@ -47,11 +47,11 @@ const TaggDraggable: React.FC<TaggDraggableProps> = (
useEffect(() => {
draggableRef.current.measure(
(
- fx: number,
+ fx: number, // location of ref relative to parent element
fy: number,
width: number,
height: number,
- px: number,
+ px: number, // location of ref relative to entire screen
py: number,
) => {
console.log(px);
@@ -60,6 +60,21 @@ const TaggDraggable: React.FC<TaggDraggableProps> = (
);
});
+ const getCoords = () => {
+ draggableRef.current.measure(
+ (
+ fx: number, // location of ref relative to parent element
+ fy: number,
+ width: number,
+ height: number,
+ px: number, // location of ref relative to entire screen
+ py: number,
+ ) => {
+ return [px, py];
+ },
+ );
+ };
+
const user: UserType = {
userId: taggedUser.id,
username: taggedUser.username,