mirror of
https://github.com/Azgaar/Fantasy-Map-Generator.git
synced 2025-12-18 18:11:24 +01:00
clean up byId function
This commit is contained in:
parent
6c983419e7
commit
1644b0594f
2 changed files with 4 additions and 20 deletions
|
|
@ -1083,7 +1083,7 @@ function enterStandardView() {
|
||||||
byId("heightmap3DView").classList.remove("pressed");
|
byId("heightmap3DView").classList.remove("pressed");
|
||||||
byId("viewStandard").classList.add("pressed");
|
byId("viewStandard").classList.add("pressed");
|
||||||
|
|
||||||
if (!byId("canvas3d")) return;
|
if (!byId("canvas3d",{throwOnNull:false})) return;
|
||||||
ThreeD.stop();
|
ThreeD.stop();
|
||||||
byId("canvas3d").remove();
|
byId("canvas3d").remove();
|
||||||
if (byId("options3dUpdate").offsetParent) $("#options3d").dialog("close");
|
if (byId("options3dUpdate").offsetParent) $("#options3d").dialog("close");
|
||||||
|
|
|
||||||
|
|
@ -10,26 +10,10 @@ export type ElementMap = {
|
||||||
// add more types as needed
|
// add more types as needed
|
||||||
};
|
};
|
||||||
|
|
||||||
type ElementMapKeys = keyof ElementMap;
|
|
||||||
|
|
||||||
interface ByIdOptions {
|
|
||||||
throwOnNull?: boolean;
|
|
||||||
// add more options as needed
|
|
||||||
}
|
|
||||||
|
|
||||||
// function definition with overloads to account for different options
|
// function definition with overloads to account for different options
|
||||||
export function byId<K extends ElementMapKeys>(id: string, options?: ByIdOptions & {throwOnNull: true}): ElementMap[K];
|
export function byId<K extends keyof ElementMap>(id: string): ElementMap[K];
|
||||||
export function byId<K extends ElementMapKeys>(id: string, options: ByIdOptions & {throwOnNull: boolean}): ElementMap[K]|null;
|
export function byId<K extends keyof ElementMap>(id: string, options?: {throwOnNull: false}): ElementMap[K] | null;
|
||||||
/**
|
export function byId<K extends keyof ElementMap>(id: string, options = {throwOnNull: true}) {
|
||||||
* Retrieves an element from the DOM by its ID.
|
|
||||||
* @template K - The key of the element in the ElementMap.
|
|
||||||
* @param {string} id - The ID of the element to retrieve.
|
|
||||||
* @param {ByIdOptions} [options] - The options for retrieving the element.
|
|
||||||
* @param {boolean} [options.throwOnNull=true] - Whether to throw an error if the element is not found.
|
|
||||||
* @returns {ElementMap[K] | null} The retrieved element or null if not found.
|
|
||||||
* @throws {Error} If the element is not found and options.throwOnNull is true.
|
|
||||||
*/
|
|
||||||
export function byId<K extends ElementMapKeys>(id: string, options: ByIdOptions = {throwOnNull: true}) {
|
|
||||||
const element = document.getElementById(id);
|
const element = document.getElementById(id);
|
||||||
if (!element && options.throwOnNull) {
|
if (!element && options.throwOnNull) {
|
||||||
throw new Error(`Element ${id} not found`);
|
throw new Error(`Element ${id} not found`);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue