pleroma/packages/pl-fe/src/utils/scopes.ts

29 lines
739 B
TypeScript
Raw Normal View History

import { getFeatures, PLEROMA, TOKI, type Instance } from 'pl-api';
import type { RootState } from 'pl-fe/store';
2023-01-25 14:32:59 -08:00
/**
* Get the OAuth scopes to use for login & signup.
* Mastodon will refuse scopes it doesn't know, so care is needed.
*/
2023-01-25 14:32:59 -08:00
const getInstanceScopes = (instance: Instance) => {
const v = getFeatures(instance).version;
switch (v.software) {
case TOKI:
return 'read write follow push write:bites';
case PLEROMA:
return 'read write follow push admin';
default:
return 'read write follow push';
}
};
2023-01-25 14:32:59 -08:00
/** Convenience function to get scopes from instance in store. */
2023-09-23 18:41:24 -07:00
const getScopes = (state: RootState) => getInstanceScopes(state.instance);
2023-01-25 14:32:59 -08:00
export {
2023-01-25 14:32:59 -08:00
getInstanceScopes,
getScopes,
};