1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
lens/src/renderer/utils/prevDefault.ts
Sebastian Malton c6d1e77237 Complete local transition to InitializableState
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2022-09-15 09:45:37 -04:00

32 lines
904 B
TypeScript

/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import type React from "react";
// Helper for preventing default event action and performing custom callback
// 1)
// <form onSubmit={prevDefault(() => console.log('do some action'))}>
// <input name="text"/>
// <button type="submit">Action</button>
// </form>
// 2)
// <a href="/some-page-url">
// <span>Link text</span>
// <Icon onClick={prevDefault(() => console.log('stay on the page and open dialog'))}/>
// </a>
export function prevDefault<E extends React.SyntheticEvent | Event, R>(callback: (evt: E) => R): (event: E) => R {
return function (evt: E) {
evt.preventDefault();
evt.stopPropagation();
return callback(evt);
};
}
export function stopPropagation(evt: Event | React.SyntheticEvent) {
evt.stopPropagation();
}