marker: Optimize MarkerVisualDot svg
Co-authored-by: Aria Minaei <aria.minaei@gmail.com>
This commit is contained in:
parent
4281092ffc
commit
8c271d187d
2 changed files with 27 additions and 17 deletions
|
@ -19,7 +19,6 @@ import type {SequenceEditorPanelLayout} from '@theatre/studio/panels/SequenceEdi
|
||||||
import type {SequenceMarkerId} from '@theatre/shared/utils/ids'
|
import type {SequenceMarkerId} from '@theatre/shared/utils/ids'
|
||||||
import type {SheetAddress} from '@theatre/shared/utils/addresses'
|
import type {SheetAddress} from '@theatre/shared/utils/addresses'
|
||||||
import SnapCursor from './SnapCursor.svg'
|
import SnapCursor from './SnapCursor.svg'
|
||||||
import MarkerDotVisual from './MarkerDotVisual.svg'
|
|
||||||
import useDrag from '@theatre/studio/uiComponents/useDrag'
|
import useDrag from '@theatre/studio/uiComponents/useDrag'
|
||||||
import type {UseDragOpts} from '@theatre/studio/uiComponents/useDrag'
|
import type {UseDragOpts} from '@theatre/studio/uiComponents/useDrag'
|
||||||
import type {CommitOrDiscard} from '@theatre/studio/StudioStore/StudioStore'
|
import type {CommitOrDiscard} from '@theatre/studio/StudioStore/StudioStore'
|
||||||
|
@ -27,8 +26,8 @@ import type {StudioHistoricStateSequenceEditorMarker} from '@theatre/studio/stor
|
||||||
import {zIndexes} from '@theatre/studio/panels/SequenceEditorPanel/SequenceEditorPanel'
|
import {zIndexes} from '@theatre/studio/panels/SequenceEditorPanel/SequenceEditorPanel'
|
||||||
import DopeSnap from './DopeSnap'
|
import DopeSnap from './DopeSnap'
|
||||||
|
|
||||||
const MARKER_SIZE_W_PX = 10
|
const MARKER_SIZE_W_PX = 12
|
||||||
const MARKER_SIZE_H_PX = 8
|
const MARKER_SIZE_H_PX = 12
|
||||||
const HIT_ZONE_SIZE_PX = 12
|
const HIT_ZONE_SIZE_PX = 12
|
||||||
const SNAP_CURSOR_SIZE_PX = 34
|
const SNAP_CURSOR_SIZE_PX = 34
|
||||||
const MARKER_HOVER_SIZE_W_PX = MARKER_SIZE_W_PX * 2
|
const MARKER_HOVER_SIZE_W_PX = MARKER_SIZE_W_PX * 2
|
||||||
|
@ -47,15 +46,32 @@ const MarkerDotContainer = styled.div`
|
||||||
z-index: ${() => zIndexes.marker};
|
z-index: ${() => zIndexes.marker};
|
||||||
`
|
`
|
||||||
|
|
||||||
const MarkerVisualDot = styled.div`
|
const MarkerVisualDotSVGContainer = styled.div`
|
||||||
position: absolute;
|
position: absolute;
|
||||||
${dims(MARKER_SIZE_W_PX, MARKER_SIZE_H_PX)}
|
${dims(MARKER_SIZE_W_PX, MARKER_SIZE_H_PX)}
|
||||||
|
|
||||||
background-image: url(${MarkerDotVisual});
|
|
||||||
background-size: contain;
|
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
`
|
`
|
||||||
|
|
||||||
|
// Attempted to optimize via memo + inline svg rather than background-url
|
||||||
|
const MarkerVisualDot = React.memo(() => (
|
||||||
|
<MarkerVisualDotSVGContainer
|
||||||
|
children={
|
||||||
|
<svg
|
||||||
|
width="100%"
|
||||||
|
height="100%"
|
||||||
|
viewBox="0 0 12 12"
|
||||||
|
fill="none"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="M12 5H0V7H2.71973L5.96237 10.2426L9.20501 7H12V5Z"
|
||||||
|
fill="#40AAA4"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
))
|
||||||
|
|
||||||
const HitZone = styled.div`
|
const HitZone = styled.div`
|
||||||
position: absolute;
|
position: absolute;
|
||||||
${dims(HIT_ZONE_SIZE_PX)};
|
${dims(HIT_ZONE_SIZE_PX)};
|
||||||
|
@ -97,7 +113,10 @@ const HitZone = styled.div`
|
||||||
pointer-events: none !important;
|
pointer-events: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover + ${MarkerVisualDot}, &.beingDragged + ${MarkerVisualDot} {
|
&:hover
|
||||||
|
+ ${MarkerVisualDotSVGContainer},
|
||||||
|
&.beingDragged
|
||||||
|
+ ${MarkerVisualDotSVGContainer} {
|
||||||
${dims(MARKER_HOVER_SIZE_W_PX, MARKER_HOVER_SIZE_H_PX)}
|
${dims(MARKER_HOVER_SIZE_W_PX, MARKER_HOVER_SIZE_H_PX)}
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
<svg width="10" height="8" viewBox="0 0 10 8" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<mask id="mask0_220_60402" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="3" width="10" height="6">
|
|
||||||
<rect width="8.56043" height="5.43915" transform="matrix(-1 -8.74228e-08 -8.74228e-08 1 9.28027 3.28027)" fill="#C4C4C4"/>
|
|
||||||
</mask>
|
|
||||||
<g mask="url(#mask0_220_60402)">
|
|
||||||
<rect width="6" height="6" transform="matrix(-0.707107 -0.707107 -0.707107 0.707107 9.28027 2.65527)" fill="#E0C917"/>
|
|
||||||
</g>
|
|
||||||
<rect width="8.02659" height="2.00315" transform="matrix(-1 -8.74228e-08 -8.74228e-08 1 9.01318 1.99707)" fill="#E0C917"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 625 B |
Loading…
Reference in a new issue