Add new ctrl/cmd - k search modal (#2467)
* add new search modal * remove search modal from searchTab * fix member avatar load for space with 2 member * use media authentication when rendering avatar * fix hotkey for macos * add @ in username * replace subspace minus separator with em dash
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
import { useCallback, useState } from 'react';
|
||||
|
||||
export const useListFocusIndex = (size: number, initialIndex: number) => {
|
||||
const [index, setIndex] = useState(initialIndex);
|
||||
|
||||
const next = useCallback(() => {
|
||||
setIndex((i) => {
|
||||
const nextIndex = i + 1;
|
||||
if (nextIndex >= size) {
|
||||
return 0;
|
||||
}
|
||||
return nextIndex;
|
||||
});
|
||||
}, [size]);
|
||||
|
||||
const previous = useCallback(() => {
|
||||
setIndex((i) => {
|
||||
const previousIndex = i - 1;
|
||||
if (previousIndex < 0) {
|
||||
return size - 1;
|
||||
}
|
||||
return previousIndex;
|
||||
});
|
||||
}, [size]);
|
||||
|
||||
const reset = useCallback(() => {
|
||||
setIndex(initialIndex);
|
||||
}, [initialIndex]);
|
||||
|
||||
return {
|
||||
index,
|
||||
next,
|
||||
previous,
|
||||
reset,
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user