App: Add TS type information
This commit is contained in:
@ -1,8 +1,9 @@
|
||||
/**
|
||||
* Use this on <Avatar> components.
|
||||
* Obtain an onchange event handler that updates an <Avatar> component
|
||||
* with a new image uploaded via a file input element.
|
||||
*/
|
||||
export const get_avatar_preview_event_handler = (id: string) => {
|
||||
const handler = (event: Event) => {
|
||||
export const get_avatar_preview_event_handler = (id: string): ((event: Event) => void) => {
|
||||
const handler = (event: Event): void => {
|
||||
const target: HTMLInputElement = event.target as HTMLInputElement;
|
||||
const files: FileList | null = target.files;
|
||||
|
||||
@ -11,6 +12,7 @@ export const get_avatar_preview_event_handler = (id: string) => {
|
||||
const preview: HTMLImageElement = document.querySelector(
|
||||
`#${id} > img:first-of-type`,
|
||||
) as HTMLImageElement;
|
||||
|
||||
if (preview) {
|
||||
preview.src = src;
|
||||
preview.hidden = false;
|
||||
@ -22,16 +24,18 @@ export const get_avatar_preview_event_handler = (id: string) => {
|
||||
};
|
||||
|
||||
/**
|
||||
* Use this on raw <img> elements.
|
||||
* Obtain an onchange event handler that updates an <img> element
|
||||
* with a new image uploaded via a file input element.
|
||||
*/
|
||||
export const get_image_preview_event_handler = (id: string) => {
|
||||
const handler = (event: Event) => {
|
||||
export const get_image_preview_event_handler = (id: string): ((event: Event) => void) => {
|
||||
const handler = (event: Event): void => {
|
||||
const target: HTMLInputElement = event.target as HTMLInputElement;
|
||||
const files: FileList | null = target.files;
|
||||
|
||||
if (files && files.length > 0) {
|
||||
const src: string = URL.createObjectURL(files[0]);
|
||||
const preview: HTMLImageElement = document.getElementById(id) as HTMLImageElement;
|
||||
|
||||
if (preview) {
|
||||
preview.src = src;
|
||||
preview.hidden = false;
|
||||
|
||||
Reference in New Issue
Block a user