#56 : Rename focusable -> hoverable
This commit is contained in:
@@ -1,15 +0,0 @@
|
|||||||
// focusin event
|
|
||||||
export function addFocusinEventListener(source, cb) {
|
|
||||||
source.addEventListener('mouseenter', cb)
|
|
||||||
}
|
|
||||||
export function removeFocusinEventListener(source, cb) {
|
|
||||||
source.removeEventListener('mouseenter', cb)
|
|
||||||
}
|
|
||||||
|
|
||||||
// focusout event
|
|
||||||
export function addFocusoutEventListener(source, cb) {
|
|
||||||
source.addEventListener('mouseleave', cb)
|
|
||||||
}
|
|
||||||
export function removeFocusoutEventListener(source, cb) {
|
|
||||||
source.removeEventListener('mouseleave', cb)
|
|
||||||
}
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
import { createDispatcher } from '../../utils/event'
|
|
||||||
import {
|
|
||||||
addFocusinEventListener,
|
|
||||||
removeFocusinEventListener,
|
|
||||||
addFocusoutEventListener,
|
|
||||||
removeFocusoutEventListener
|
|
||||||
} from './event'
|
|
||||||
|
|
||||||
/**
|
|
||||||
* focusable events are for mouse events only
|
|
||||||
*/
|
|
||||||
export function focusable(node) {
|
|
||||||
const dispatch = createDispatcher(node)
|
|
||||||
|
|
||||||
function handleFocusin() {
|
|
||||||
addFocusoutEventListener(node, handleFocusout)
|
|
||||||
dispatch('focused', { value: true })
|
|
||||||
}
|
|
||||||
|
|
||||||
function handleFocusout() {
|
|
||||||
dispatch('focused', { value: false })
|
|
||||||
removeFocusoutEventListener(node, handleFocusout)
|
|
||||||
}
|
|
||||||
|
|
||||||
addFocusinEventListener(node, handleFocusin)
|
|
||||||
|
|
||||||
return {
|
|
||||||
destroy() {
|
|
||||||
removeFocusinEventListener(node, handleFocusin)
|
|
||||||
removeFocusoutEventListener(node, handleFocusout)
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
export * from './focusable'
|
|
||||||
15
src/actions/hoverable/event.js
Normal file
15
src/actions/hoverable/event.js
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
// in event
|
||||||
|
export function addHoverInEventListener(source, cb) {
|
||||||
|
source.addEventListener('mouseenter', cb)
|
||||||
|
}
|
||||||
|
export function removeHoverInEventListener(source, cb) {
|
||||||
|
source.removeEventListener('mouseenter', cb)
|
||||||
|
}
|
||||||
|
|
||||||
|
// out event
|
||||||
|
export function addHoverOutEventListener(source, cb) {
|
||||||
|
source.addEventListener('mouseleave', cb)
|
||||||
|
}
|
||||||
|
export function removeHoverOutEventListener(source, cb) {
|
||||||
|
source.removeEventListener('mouseleave', cb)
|
||||||
|
}
|
||||||
33
src/actions/hoverable/hoverable.js
Normal file
33
src/actions/hoverable/hoverable.js
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
import { createDispatcher } from '../../utils/event'
|
||||||
|
import {
|
||||||
|
addHoverInEventListener,
|
||||||
|
removeHoverInEventListener,
|
||||||
|
addHoverOutEventListener,
|
||||||
|
removeHoverOutEventListener
|
||||||
|
} from './event'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* hoverable events are for mouse events only
|
||||||
|
*/
|
||||||
|
export function hoverable(node) {
|
||||||
|
const dispatch = createDispatcher(node)
|
||||||
|
|
||||||
|
function handleHoverIn() {
|
||||||
|
addHoverOutEventListener(node, handleHoverOut)
|
||||||
|
dispatch('hovered', { value: true })
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleHoverOut() {
|
||||||
|
dispatch('hovered', { value: false })
|
||||||
|
removeHoverOutEventListener(node, handleHoverOut)
|
||||||
|
}
|
||||||
|
|
||||||
|
addHoverInEventListener(node, handleHoverIn)
|
||||||
|
|
||||||
|
return {
|
||||||
|
destroy() {
|
||||||
|
removeHoverInEventListener(node, handleHoverIn)
|
||||||
|
removeHoverOutEventListener(node, handleHoverOut)
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
1
src/actions/hoverable/index.js
Normal file
1
src/actions/hoverable/index.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
export * from './hoverable'
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
import Progress from '../Progress/Progress.svelte'
|
import Progress from '../Progress/Progress.svelte'
|
||||||
import { NEXT, PREV } from '../../direction'
|
import { NEXT, PREV } from '../../direction'
|
||||||
import { swipeable } from '../../actions/swipeable'
|
import { swipeable } from '../../actions/swipeable'
|
||||||
import { focusable } from '../../actions/focusable'
|
import { hoverable } from '../../actions/hoverable'
|
||||||
import { tappable } from '../../actions/tappable'
|
import { tappable } from '../../actions/tappable'
|
||||||
import {
|
import {
|
||||||
addResizeEventListener,
|
addResizeEventListener,
|
||||||
@@ -311,7 +311,7 @@
|
|||||||
await offsetPage({ animated: true })
|
await offsetPage({ animated: true })
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleFocused(event) {
|
function handleHovered(event) {
|
||||||
focused = event.detail.value
|
focused = event.detail.value
|
||||||
}
|
}
|
||||||
function handleTapped(event) {
|
function handleTapped(event) {
|
||||||
@@ -336,8 +336,8 @@
|
|||||||
class="sc-carousel__pages-window"
|
class="sc-carousel__pages-window"
|
||||||
bind:this={pageWindowElement}
|
bind:this={pageWindowElement}
|
||||||
|
|
||||||
use:focusable
|
use:hoverable
|
||||||
on:focused={handleFocused}
|
on:hovered={handleHovered}
|
||||||
|
|
||||||
use:tappable
|
use:tappable
|
||||||
on:tapped={handleTapped}
|
on:tapped={handleTapped}
|
||||||
|
|||||||
Reference in New Issue
Block a user