Compare commits

..

No commits in common. "da610022b42631f9e5d4a2a559ca7d989bea4ae9" and "903d4f842e54164a0c609d65db42673b85c2fc58" have entirely different histories.

2 changed files with 15 additions and 15 deletions

View File

@ -14,7 +14,7 @@ let centerX = ref(0), centerY = ref(0), canvas = ref<HTMLDivElement>();
let minX = ref(+Infinity), minY = ref(+Infinity), maxX = ref(-Infinity), maxY = ref(-Infinity); let minX = ref(+Infinity), minY = ref(+Infinity), maxX = ref(-Infinity), maxY = ref(-Infinity);
let bbox = ref<DOMRect>(); let bbox = ref<DOMRect>();
let lastDistance = 0; let lastPinchLength = 0;
let _minX = +Infinity, _minY = +Infinity, _maxX = -Infinity, _maxY = -Infinity; let _minX = +Infinity, _minY = +Infinity, _maxX = -Infinity, _maxY = -Infinity;
@ -93,7 +93,7 @@ const onTouchStart = (event: TouchEvent) => {
if(event.touches?.length === 2) if(event.touches?.length === 2)
{ {
dragging = false; dragging = false;
lastDistance = length(event.touches[0].clientX, event.touches[0].clientY, event.touches[1].clientX, event.touches[1].clientY); lastPinchLength = length(event.touches[0].clientX, event.touches[0].clientY, event.touches[1].clientX, event.touches[1].clientY);
document.addEventListener('touchmove', onTouchMove); document.addEventListener('touchmove', onTouchMove);
document.addEventListener('touchend', onTouchEnd); document.addEventListener('touchend', onTouchEnd);
@ -111,10 +111,10 @@ const onTouchEnd = (event: TouchEvent) => {
const onTouchMove = (event: TouchEvent) => { const onTouchMove = (event: TouchEvent) => {
if(event.touches?.length === 2) if(event.touches?.length === 2)
{ {
const distance = length(event.touches[0].clientX, event.touches[0].clientY, event.touches[1].clientX, event.touches[1].clientY); const l = length(event.touches[0].clientX, event.touches[0].clientY, event.touches[1].clientX, event.touches[1].clientY);
zoom.value = clamp(zoom.value * (distance / lastDistance), minZoom.value, 3); zoom.value = clamp(zoom.value + ((lastPinchLength - l) * -0.01), minZoom.value, 3);
lastDistance = distance; lastPinchLength = l;
} }
} }
@ -276,7 +276,6 @@ function getCenter(n: { x: number, y: number }, i: { x: number, y: number }, r:
</div> </div>
</template> </template>
</div> </div>
<span v-if="TMP_dragPoint" :style="{ display: 'block', backgroundColor: 'red', borderRadius: '8px', width: '8px', height: '8px', transform: `translate(-4px, -4px) translate(${TMP_dragPoint.x}px, ${TMP_dragPoint.y}px)` }"></span>
</div> </div>
</template> </template>
<template #fallback> <template #fallback>

19
types/api.d.ts vendored
View File

@ -6,7 +6,11 @@ export interface SuccessHandler
export interface ErrorHandler export interface ErrorHandler
{ {
success: false; success: false;
error: Error | ZodError; error: Error | ZodError<{
username: string;
email: string;
password: string;
}>;
} }
export type Return = SuccessHandler | ErrorHandler; export type Return = SuccessHandler | ErrorHandler;
@ -25,19 +29,16 @@ export interface Navigation {
private: boolean; private: boolean;
children?: Navigation[]; children?: Navigation[];
} }
export type FileMetadata = Record<string, boolean | string | number>;
export type FileType = 'Markdown' | 'Canvas' | 'File' | 'Folder';
export interface File { export interface File {
project: number; project: number;
path: string; path: string;
owner: number; owner: number;
title: string; title: string;
order: number; order: number;
type: FileType; type: 'Markdown' | 'Canvas' | 'File' | 'Folder';
content: string; content: string;
navigable: boolean; navigable: boolean;
private: boolean; private: boolean;
metadata: FileMetadata;
} }
export interface Comment { export interface Comment {
project: number; project: number;
@ -52,21 +53,21 @@ export interface User {
id: number; id: number;
username: string; username: string;
} }
export type ProjectSearch = Project & export interface ProjectSearch extends Project
{ {
pages: number; pages: number;
username: string; username: string;
} }
export type FileSearch = Omit<File, 'content'> & export interface FileSearch extends File
{ {
comments: number; comments: number;
username: string; username: string;
} }
export type CommentSearch = Comment & export interface CommentSearch extends Comment
{ {
username: string; username: string;
} }
export type UserSearch = User & export interface UserSearch extends User
{ {
} }
export interface Search { export interface Search {