refactor: remove unrelated changes

This commit is contained in:
Tim 2025-03-19 19:30:38 +01:00
parent 16e6a3cf4d
commit d8be6085b2
3 changed files with 14 additions and 14 deletions

View file

@ -1,25 +1,27 @@
// Copyright (C) 2017-2024 Smart code 203358507
import { RefObject, useEffect } from 'react';
import { useEffect, useRef } from 'react';
const useOutsideClick = (callback: () => void) => {
const ref = useRef<HTMLDivElement>(null);
const useOutsideClick = (ref: RefObject<HTMLDivElement>, callback: () => void) => {
useEffect(() => {
if (!ref?.current) return;
const handleClickOutside = (event: MouseEvent | TouchEvent) => {
if (ref.current && !ref.current.contains(event.target as Node)) {
callback();
}
};
document.addEventListener('mousedown', handleClickOutside, true);
document.addEventListener('touchstart', handleClickOutside, true);
document.addEventListener('mouseup', handleClickOutside);
document.addEventListener('touchend', handleClickOutside);
return () => {
document.removeEventListener('mousedown', handleClickOutside);
document.removeEventListener('touchstart', handleClickOutside);
document.removeEventListener('mouseup', handleClickOutside);
document.removeEventListener('touchend', handleClickOutside);
};
}, [ref, callback]);
}, [callback]);
return ref;
};
export default useOutsideClick;

View file

@ -63,7 +63,7 @@ const Dropdown = ({ level, setLevel, options, onSelect, selectedOption, menuOpen
.filter((option: MultiselectMenuOption) => !option.hidden)
.map((option: MultiselectMenuOption) => (
<Option
key={option.value}
key={option.id}
ref={handleSetOptionRef(option.value)}
option={option}
onSelect={onSelect}

View file

@ -1,6 +1,6 @@
// Copyright (C) 2017-2024 Smart code 203358507
import React, { useRef } from 'react';
import React from 'react';
import { Button } from 'stremio/components';
import useBinaryState from 'stremio/common/useBinaryState';
import Dropdown from './Dropdown';
@ -19,15 +19,13 @@ type Props = {
const MultiselectMenu = ({ className, title, options, selectedOption, onSelect }: Props) => {
const [menuOpen, , closeMenu, toggleMenu] = useBinaryState(false);
const multiselectMenuRef = useRef(null);
const multiselectMenuRef = useOutsideClick(() => closeMenu());
const [level, setLevel] = React.useState<number>(0);
const onOptionSelect = (value: number) => {
level ? setLevel(level + 1) : onSelect(value), closeMenu();
};
useOutsideClick(multiselectMenuRef, closeMenu);
return (
<div className={classNames(styles['multiselect-menu'], className)} ref={multiselectMenuRef}>
<Button