Chore: Refactor
This commit is contained in:
parent
c1c5aac44a
commit
64d955c464
7 changed files with 3 additions and 3 deletions
|
@ -1,6 +1,6 @@
|
|||
import type {IDerivation, Pointer} from '@theatre/dataverse'
|
||||
import {Atom, prism, val} from '@theatre/dataverse'
|
||||
import mousePositionD from '@theatre/shared/utils/mousePositionD'
|
||||
import mousePositionD from '@theatre/studio/utils/mousePositionD'
|
||||
import type {$IntentionalAny} from '@theatre/shared/utils/types'
|
||||
import {inRange, last} from 'lodash-es'
|
||||
import React, {createContext, useCallback, useContext, useMemo} from 'react'
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import type {SequenceEditorPanelLayout} from '@theatre/studio/panels/SequenceEditorPanel/layout/layout'
|
||||
import mousePositionD from '@theatre/shared/utils/mousePositionD'
|
||||
import mousePositionD from '@theatre/studio/utils/mousePositionD'
|
||||
import {usePrism, useVal} from '@theatre/dataverse-react'
|
||||
import type {Pointer} from '@theatre/dataverse'
|
||||
import {val} from '@theatre/dataverse'
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import mousePositionD from '@theatre/shared/utils/mousePositionD'
|
||||
import mousePositionD from '@theatre/studio/utils/mousePositionD'
|
||||
import {usePrism} from '@theatre/dataverse-react'
|
||||
import {val} from '@theatre/dataverse'
|
||||
import React from 'react'
|
||||
|
|
26
theatre/studio/src/utils/copyToClipboard.ts
Normal file
26
theatre/studio/src/utils/copyToClipboard.ts
Normal file
|
@ -0,0 +1,26 @@
|
|||
export async function copyToClipboard(text: string): Promise<boolean> {
|
||||
if (navigator.clipboard) {
|
||||
return navigator.clipboard
|
||||
.writeText(text)
|
||||
.then(() => {
|
||||
return true
|
||||
})
|
||||
.catch(() => {
|
||||
return false
|
||||
})
|
||||
} else {
|
||||
const tempTextArea = document.createElement('textarea')
|
||||
tempTextArea.value = text
|
||||
document.body.appendChild(tempTextArea)
|
||||
tempTextArea.focus()
|
||||
tempTextArea.select()
|
||||
try {
|
||||
const successful = document.execCommand('copy')
|
||||
document.body.removeChild(tempTextArea)
|
||||
return Promise.resolve(successful)
|
||||
} catch (err) {
|
||||
document.body.removeChild(tempTextArea)
|
||||
return Promise.resolve(false)
|
||||
}
|
||||
}
|
||||
}
|
2
theatre/studio/src/utils/isMac.ts
Normal file
2
theatre/studio/src/utils/isMac.ts
Normal file
|
@ -0,0 +1,2 @@
|
|||
export const isMac =
|
||||
navigator && navigator.platform.toUpperCase().indexOf('MAC') >= 0
|
23
theatre/studio/src/utils/keyboardUtils.ts
Normal file
23
theatre/studio/src/utils/keyboardUtils.ts
Normal file
|
@ -0,0 +1,23 @@
|
|||
import {isMac} from './isMac'
|
||||
|
||||
/**
|
||||
* On mac, it checks Cmd, on windows, ctrl
|
||||
*/
|
||||
export const cmdIsDown = (e: KeyboardEvent | MouseEvent) => {
|
||||
if (isMac) {
|
||||
return e.metaKey === true
|
||||
} else {
|
||||
return e.ctrlKey === true
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* On mac, it checks for ctrl, on windows, Win
|
||||
*/
|
||||
export const ctrlIsDown = (e: KeyboardEvent | MouseEvent) => {
|
||||
if (isMac) {
|
||||
return e.ctrlKey === true
|
||||
} else {
|
||||
return e.metaKey === true
|
||||
}
|
||||
}
|
23
theatre/studio/src/utils/mousePositionD.ts
Normal file
23
theatre/studio/src/utils/mousePositionD.ts
Normal file
|
@ -0,0 +1,23 @@
|
|||
import {prism} from '@theatre/dataverse'
|
||||
|
||||
const mousePositionD = prism(() => {
|
||||
const [pos, setPos] = prism.state('pos', {clientX: 0, clientY: 0})
|
||||
prism.effect(
|
||||
'setupListeners',
|
||||
() => {
|
||||
const handleMouseMove = (e: MouseEvent) => {
|
||||
setPos({clientX: e.clientX, clientY: e.clientY})
|
||||
}
|
||||
document.addEventListener('mousemove', handleMouseMove)
|
||||
|
||||
return () => {
|
||||
document.removeEventListener('mousemove', handleMouseMove)
|
||||
}
|
||||
},
|
||||
[],
|
||||
)
|
||||
|
||||
return pos
|
||||
})
|
||||
|
||||
export default mousePositionD
|
Loading…
Add table
Add a link
Reference in a new issue