Add useInstance() hook See merge request soapbox-pub/soapbox!1946environments/review-develop-3zknud/deployments/1590
commit
3a489f98d2
@ -1,9 +1,9 @@
|
||||
import { useAppSelector } from 'soapbox/hooks';
|
||||
import { getFeatures } from 'soapbox/utils/features';
|
||||
import { getFeatures, Features } from 'soapbox/utils/features';
|
||||
|
||||
import type { Features } from 'soapbox/utils/features';
|
||||
import { useInstance } from './useInstance';
|
||||
|
||||
/** Get features for the current instance */
|
||||
/** Get features for the current instance. */
|
||||
export const useFeatures = (): Features => {
|
||||
return useAppSelector((state) => getFeatures(state.instance));
|
||||
const instance = useInstance();
|
||||
return getFeatures(instance);
|
||||
};
|
||||
|
@ -0,0 +1,6 @@
|
||||
import { useAppSelector } from 'soapbox/hooks';
|
||||
|
||||
/** Get the Instance for the current backend. */
|
||||
export const useInstance = () => {
|
||||
return useAppSelector((state) => state.instance);
|
||||
};
|
@ -1,13 +1,21 @@
|
||||
import { useCallback } from 'react';
|
||||
|
||||
import { useAppSelector } from 'soapbox/hooks';
|
||||
import { makeGetAccount } from 'soapbox/selectors';
|
||||
|
||||
import type { Account } from 'soapbox/types/entities';
|
||||
|
||||
// FIXME: There is no reason this selector shouldn't be global accross the whole app
|
||||
// FIXME: getAccount() has the wrong type??
|
||||
const getAccount: (state: any, accountId: any) => any = makeGetAccount();
|
||||
|
||||
/** Get the logged-in account from the store, if any */
|
||||
/** Get the logged-in account from the store, if any. */
|
||||
export const useOwnAccount = (): Account | null => {
|
||||
return useAppSelector((state) => getAccount(state, state.me));
|
||||
const getAccount = useCallback(makeGetAccount(), []);
|
||||
|
||||
return useAppSelector((state) => {
|
||||
const { me } = state;
|
||||
|
||||
if (typeof me === 'string') {
|
||||
return getAccount(state, me);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
Loading…
Reference in new issue