mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-19 11:41:20 +08:00
73 lines
1.8 KiB
TypeScript
73 lines
1.8 KiB
TypeScript
/**
|
|
* Check to see if the Haptic Plugin is available
|
|
* @return Returns `true` or false if the plugin is available
|
|
*/
|
|
export const hapticAvailable = (): boolean => {
|
|
const engine = (window as any).TapticEngine;
|
|
return !!engine;
|
|
};
|
|
|
|
/**
|
|
* Trigger a selection changed haptic event. Good for one-time events
|
|
* (not for gestures)
|
|
*/
|
|
export const hapticSelection = () => {
|
|
const engine = (window as any).TapticEngine;
|
|
if (engine) {
|
|
engine.selection();
|
|
}
|
|
};
|
|
|
|
/**
|
|
* Tell the haptic engine that a gesture for a selection change is starting.
|
|
*/
|
|
export const hapticSelectionStart = () => {
|
|
const engine = (window as any).TapticEngine;
|
|
if (engine) {
|
|
engine.gestureSelectionStart();
|
|
}
|
|
};
|
|
|
|
/**
|
|
* Tell the haptic engine that a selection changed during a gesture.
|
|
*/
|
|
export const hapticSelectionChanged = () => {
|
|
const engine = (window as any).TapticEngine;
|
|
if (engine) {
|
|
engine.gestureSelectionChanged();
|
|
}
|
|
};
|
|
|
|
/**
|
|
* Tell the haptic engine we are done with a gesture. This needs to be
|
|
* called lest resources are not properly recycled.
|
|
*/
|
|
export const hapticSelectionEnd = () => {
|
|
const engine = (window as any).TapticEngine;
|
|
if (engine) {
|
|
engine.gestureSelectionEnd();
|
|
}
|
|
};
|
|
|
|
/**
|
|
* Use this to indicate success/failure/warning to the user.
|
|
* options should be of the type `{ type: 'success' }` (or `warning`/`error`)
|
|
*/
|
|
export const hapticNotification = (options: { type: 'success' | 'warning' | 'error' }) => {
|
|
const engine = (window as any).TapticEngine;
|
|
if (engine) {
|
|
engine.notification(options);
|
|
}
|
|
};
|
|
|
|
/**
|
|
* Use this to indicate success/failure/warning to the user.
|
|
* options should be of the type `{ style: 'light' }` (or `medium`/`heavy`)
|
|
*/
|
|
export const hapticImpact = (options: { style: 'light' | 'medium' | 'heavy' }) => {
|
|
const engine = (window as any).TapticEngine;
|
|
if (engine) {
|
|
engine.impact(options);
|
|
}
|
|
};
|