Refactor portals/outside clicks in sticker creator

This commit is contained in:
Jamie Kyle 2023-10-04 20:28:36 -07:00 committed by GitHub
parent 8172840535
commit 4973dac57a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 96 additions and 198 deletions

View file

@ -1,43 +0,0 @@
// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
const makeApi = (classes?: Array<string>) => ({
createRoot: () => {
const div = document.createElement('div');
if (classes) {
classes.forEach(theme => {
div.classList.add(theme);
});
}
document.body.appendChild(div);
return div;
},
removeRoot: (root: HTMLElement) => {
document.body.removeChild(root);
},
});
export const PopperRootContext = React.createContext(makeApi());
export type ClassyProviderProps = {
classes?: Array<string>;
children?: React.ReactChildren;
};
export function ClassyProvider({
classes,
children,
}: ClassyProviderProps): JSX.Element {
const api = React.useMemo(() => makeApi(classes), [classes]);
return (
<PopperRootContext.Provider value={api}>
{children}
</PopperRootContext.Provider>
);
}