/** @metadata macro {@link Flamework.resolveDependency intrinsic-flamework-rewrite} */
export function useAllComponents<T extends BaseComponent>(id?: IntrinsicSymbolId<T>): T[] {
assert(id, "id must be defined");
const componentDependency = useFlameworkDependency<Components>();
const [components, setComponents] = useState(componentDependency.getAllComponents<T>(id));
useMountEffect(() => {
const addedConnection = componentDependency.onComponentAdded<T>((component) => {
setComponents([...components, component]);
}, id);
warn(componentDependency);
const removedConnection = componentDependency.onComponentRemoved<T>((component) => {
setComponents([...components.filter((value) => value !== component)]);
}, id);
return () => {
addedConnection.Disconnect();
removedConnection.Disconnect();
};
});
return components;
}
/** @metadata macro {@link Flamework.resolveDependency intrinsic-flamework-rewrite} */
export function useAllComponents<T extends BaseComponent>(id?: IntrinsicSymbolId<T>): T[] {
assert(id, "id must be defined");
const componentDependency = useFlameworkDependency<Components>();
const [components, setComponents] = useState(componentDependency.getAllComponents<T>(id));
useMountEffect(() => {
const addedConnection = componentDependency.onComponentAdded<T>((component) => {
setComponents([...components, component]);
}, id);
warn(componentDependency);
const removedConnection = componentDependency.onComponentRemoved<T>((component) => {
setComponents([...components.filter((value) => value !== component)]);
}, id);
return () => {
addedConnection.Disconnect();
removedConnection.Disconnect();
};
});
return components;
}