mirror of
https://github.com/immich-app/immich.git
synced 2025-12-21 17:25:35 +03:00
* add unicorn to eslint * fix lint errors for cli * fix merge * fix album name extraction * Update cli/src/commands/upload.command.ts Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com> * es2k23 * use lowercase os * return undefined album name * fix bug in asset response dto * auto fix issues * fix server code style * es2022 and formatting * fix compilation error * fix test * fix config load * fix last lint errors * set string type * bump ts * start work on web * web formatting * Fix UUIDParamDto as UUIDParamDto * fix library service lint * fix web errors * fix errors * formatting * wip * lints fixed * web can now start * alphabetical package json * rename error * chore: clean up --------- Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com> Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
22 lines
605 B
TypeScript
22 lines
605 B
TypeScript
export type Align = 'middle' | 'top-left' | 'top-right';
|
|
|
|
export const getContextMenuPosition = (event: MouseEvent, align: Align = 'middle') => {
|
|
const { x, y, currentTarget, target } = event;
|
|
const box = ((currentTarget || target) as HTMLElement)?.getBoundingClientRect();
|
|
if (box) {
|
|
switch (align) {
|
|
case 'middle': {
|
|
return { x: box.x + box.width / 2, y: box.y + box.height / 2 };
|
|
}
|
|
case 'top-left': {
|
|
return { x: box.x, y: box.y };
|
|
}
|
|
case 'top-right': {
|
|
return { x: box.x + box.width, y: box.y };
|
|
}
|
|
}
|
|
}
|
|
|
|
return { x, y };
|
|
};
|