@apvee/spfx-react-toolkit 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +2012 -0
- package/lib/core/atoms.internal.d.ts +53 -0
- package/lib/core/atoms.internal.d.ts.map +1 -0
- package/lib/core/atoms.internal.js +35 -0
- package/lib/core/atoms.internal.js.map +1 -0
- package/lib/core/context.internal.d.ts +23 -0
- package/lib/core/context.internal.d.ts.map +1 -0
- package/lib/core/context.internal.js +34 -0
- package/lib/core/context.internal.js.map +1 -0
- package/lib/core/index.d.ts +6 -0
- package/lib/core/index.d.ts.map +1 -0
- package/lib/core/index.js +6 -0
- package/lib/core/index.js.map +1 -0
- package/lib/core/provider-application-customizer.d.ts +57 -0
- package/lib/core/provider-application-customizer.d.ts.map +1 -0
- package/lib/core/provider-application-customizer.js +45 -0
- package/lib/core/provider-application-customizer.js.map +1 -0
- package/lib/core/provider-base.internal.d.ts +20 -0
- package/lib/core/provider-base.internal.d.ts.map +1 -0
- package/lib/core/provider-base.internal.js +126 -0
- package/lib/core/provider-base.internal.js.map +1 -0
- package/lib/core/provider-field-customizer.d.ts +58 -0
- package/lib/core/provider-field-customizer.d.ts.map +1 -0
- package/lib/core/provider-field-customizer.js +46 -0
- package/lib/core/provider-field-customizer.js.map +1 -0
- package/lib/core/provider-listview-commandset.d.ts +60 -0
- package/lib/core/provider-listview-commandset.d.ts.map +1 -0
- package/lib/core/provider-listview-commandset.js +48 -0
- package/lib/core/provider-listview-commandset.js.map +1 -0
- package/lib/core/provider-webpart.d.ts +48 -0
- package/lib/core/provider-webpart.d.ts.map +1 -0
- package/lib/core/provider-webpart.js +36 -0
- package/lib/core/provider-webpart.js.map +1 -0
- package/lib/core/types.d.ts +84 -0
- package/lib/core/types.d.ts.map +1 -0
- package/lib/core/types.js +4 -0
- package/lib/core/types.js.map +1 -0
- package/lib/hooks/index.d.ts +34 -0
- package/lib/hooks/index.d.ts.map +1 -0
- package/lib/hooks/index.js +34 -0
- package/lib/hooks/index.js.map +1 -0
- package/lib/hooks/useSPFxAadHttpClient.d.ts +231 -0
- package/lib/hooks/useSPFxAadHttpClient.d.ts.map +1 -0
- package/lib/hooks/useSPFxAadHttpClient.js +299 -0
- package/lib/hooks/useSPFxAadHttpClient.js.map +1 -0
- package/lib/hooks/useSPFxContainerInfo.d.ts +41 -0
- package/lib/hooks/useSPFxContainerInfo.d.ts.map +1 -0
- package/lib/hooks/useSPFxContainerInfo.js +47 -0
- package/lib/hooks/useSPFxContainerInfo.js.map +1 -0
- package/lib/hooks/useSPFxContainerSize.d.ts +119 -0
- package/lib/hooks/useSPFxContainerSize.d.ts.map +1 -0
- package/lib/hooks/useSPFxContainerSize.js +150 -0
- package/lib/hooks/useSPFxContainerSize.js.map +1 -0
- package/lib/hooks/useSPFxContext.d.ts +14 -0
- package/lib/hooks/useSPFxContext.d.ts.map +1 -0
- package/lib/hooks/useSPFxContext.js +16 -0
- package/lib/hooks/useSPFxContext.js.map +1 -0
- package/lib/hooks/useSPFxCorrelationInfo.d.ts +51 -0
- package/lib/hooks/useSPFxCorrelationInfo.d.ts.map +1 -0
- package/lib/hooks/useSPFxCorrelationInfo.js +58 -0
- package/lib/hooks/useSPFxCorrelationInfo.js.map +1 -0
- package/lib/hooks/useSPFxCrossSitePermissions.d.ts +81 -0
- package/lib/hooks/useSPFxCrossSitePermissions.d.ts.map +1 -0
- package/lib/hooks/useSPFxCrossSitePermissions.js +132 -0
- package/lib/hooks/useSPFxCrossSitePermissions.js.map +1 -0
- package/lib/hooks/useSPFxDisplayMode.d.ts +61 -0
- package/lib/hooks/useSPFxDisplayMode.d.ts.map +1 -0
- package/lib/hooks/useSPFxDisplayMode.js +69 -0
- package/lib/hooks/useSPFxDisplayMode.js.map +1 -0
- package/lib/hooks/useSPFxEnvironmentInfo.d.ts +63 -0
- package/lib/hooks/useSPFxEnvironmentInfo.d.ts.map +1 -0
- package/lib/hooks/useSPFxEnvironmentInfo.js +91 -0
- package/lib/hooks/useSPFxEnvironmentInfo.js.map +1 -0
- package/lib/hooks/useSPFxFluent9ThemeInfo.d.ts +105 -0
- package/lib/hooks/useSPFxFluent9ThemeInfo.d.ts.map +1 -0
- package/lib/hooks/useSPFxFluent9ThemeInfo.js +136 -0
- package/lib/hooks/useSPFxFluent9ThemeInfo.js.map +1 -0
- package/lib/hooks/useSPFxHubSiteInfo.d.ts +80 -0
- package/lib/hooks/useSPFxHubSiteInfo.d.ts.map +1 -0
- package/lib/hooks/useSPFxHubSiteInfo.js +127 -0
- package/lib/hooks/useSPFxHubSiteInfo.js.map +1 -0
- package/lib/hooks/useSPFxInstanceInfo.d.ts +41 -0
- package/lib/hooks/useSPFxInstanceInfo.d.ts.map +1 -0
- package/lib/hooks/useSPFxInstanceInfo.js +40 -0
- package/lib/hooks/useSPFxInstanceInfo.js.map +1 -0
- package/lib/hooks/useSPFxListInfo.d.ts +64 -0
- package/lib/hooks/useSPFxListInfo.d.ts.map +1 -0
- package/lib/hooks/useSPFxListInfo.js +70 -0
- package/lib/hooks/useSPFxListInfo.js.map +1 -0
- package/lib/hooks/useSPFxLocaleInfo.d.ts +123 -0
- package/lib/hooks/useSPFxLocaleInfo.d.ts.map +1 -0
- package/lib/hooks/useSPFxLocaleInfo.js +109 -0
- package/lib/hooks/useSPFxLocaleInfo.js.map +1 -0
- package/lib/hooks/useSPFxLogger.d.ts +108 -0
- package/lib/hooks/useSPFxLogger.d.ts.map +1 -0
- package/lib/hooks/useSPFxLogger.js +117 -0
- package/lib/hooks/useSPFxLogger.js.map +1 -0
- package/lib/hooks/useSPFxMSGraphClient.d.ts +200 -0
- package/lib/hooks/useSPFxMSGraphClient.d.ts.map +1 -0
- package/lib/hooks/useSPFxMSGraphClient.js +264 -0
- package/lib/hooks/useSPFxMSGraphClient.js.map +1 -0
- package/lib/hooks/useSPFxOneDriveAppData.d.ts +264 -0
- package/lib/hooks/useSPFxOneDriveAppData.d.ts.map +1 -0
- package/lib/hooks/useSPFxOneDriveAppData.js +395 -0
- package/lib/hooks/useSPFxOneDriveAppData.js.map +1 -0
- package/lib/hooks/useSPFxPageContext.d.ts +37 -0
- package/lib/hooks/useSPFxPageContext.d.ts.map +1 -0
- package/lib/hooks/useSPFxPageContext.js +49 -0
- package/lib/hooks/useSPFxPageContext.js.map +1 -0
- package/lib/hooks/useSPFxPageType.d.ts +82 -0
- package/lib/hooks/useSPFxPageType.d.ts.map +1 -0
- package/lib/hooks/useSPFxPageType.js +137 -0
- package/lib/hooks/useSPFxPageType.js.map +1 -0
- package/lib/hooks/useSPFxPerformance.d.ts +72 -0
- package/lib/hooks/useSPFxPerformance.d.ts.map +1 -0
- package/lib/hooks/useSPFxPerformance.js +167 -0
- package/lib/hooks/useSPFxPerformance.js.map +1 -0
- package/lib/hooks/useSPFxPermissions.d.ts +61 -0
- package/lib/hooks/useSPFxPermissions.d.ts.map +1 -0
- package/lib/hooks/useSPFxPermissions.js +73 -0
- package/lib/hooks/useSPFxPermissions.js.map +1 -0
- package/lib/hooks/useSPFxPnP.d.ts +539 -0
- package/lib/hooks/useSPFxPnP.d.ts.map +1 -0
- package/lib/hooks/useSPFxPnP.js +533 -0
- package/lib/hooks/useSPFxPnP.js.map +1 -0
- package/lib/hooks/useSPFxPnPContext.d.ts +290 -0
- package/lib/hooks/useSPFxPnPContext.d.ts.map +1 -0
- package/lib/hooks/useSPFxPnPContext.js +340 -0
- package/lib/hooks/useSPFxPnPContext.js.map +1 -0
- package/lib/hooks/useSPFxPnPList.d.ts +545 -0
- package/lib/hooks/useSPFxPnPList.d.ts.map +1 -0
- package/lib/hooks/useSPFxPnPList.js +906 -0
- package/lib/hooks/useSPFxPnPList.js.map +1 -0
- package/lib/hooks/useSPFxPnPSearch.d.ts +540 -0
- package/lib/hooks/useSPFxPnPSearch.d.ts.map +1 -0
- package/lib/hooks/useSPFxPnPSearch.js +672 -0
- package/lib/hooks/useSPFxPnPSearch.js.map +1 -0
- package/lib/hooks/useSPFxProperties.d.ts +80 -0
- package/lib/hooks/useSPFxProperties.d.ts.map +1 -0
- package/lib/hooks/useSPFxProperties.js +95 -0
- package/lib/hooks/useSPFxProperties.js.map +1 -0
- package/lib/hooks/useSPFxSPHttpClient.d.ts +218 -0
- package/lib/hooks/useSPFxSPHttpClient.d.ts.map +1 -0
- package/lib/hooks/useSPFxSPHttpClient.js +287 -0
- package/lib/hooks/useSPFxSPHttpClient.js.map +1 -0
- package/lib/hooks/useSPFxServiceScope.d.ts +107 -0
- package/lib/hooks/useSPFxServiceScope.d.ts.map +1 -0
- package/lib/hooks/useSPFxServiceScope.js +105 -0
- package/lib/hooks/useSPFxServiceScope.js.map +1 -0
- package/lib/hooks/useSPFxSiteInfo.d.ts +116 -0
- package/lib/hooks/useSPFxSiteInfo.d.ts.map +1 -0
- package/lib/hooks/useSPFxSiteInfo.js +109 -0
- package/lib/hooks/useSPFxSiteInfo.js.map +1 -0
- package/lib/hooks/useSPFxStorage.d.ts +81 -0
- package/lib/hooks/useSPFxStorage.d.ts.map +1 -0
- package/lib/hooks/useSPFxStorage.js +140 -0
- package/lib/hooks/useSPFxStorage.js.map +1 -0
- package/lib/hooks/useSPFxTeams.d.ts +63 -0
- package/lib/hooks/useSPFxTeams.d.ts.map +1 -0
- package/lib/hooks/useSPFxTeams.js +198 -0
- package/lib/hooks/useSPFxTeams.js.map +1 -0
- package/lib/hooks/useSPFxTenantProperty.d.ts +389 -0
- package/lib/hooks/useSPFxTenantProperty.d.ts.map +1 -0
- package/lib/hooks/useSPFxTenantProperty.js +683 -0
- package/lib/hooks/useSPFxTenantProperty.js.map +1 -0
- package/lib/hooks/useSPFxThemeInfo.d.ts +27 -0
- package/lib/hooks/useSPFxThemeInfo.d.ts.map +1 -0
- package/lib/hooks/useSPFxThemeInfo.js +33 -0
- package/lib/hooks/useSPFxThemeInfo.js.map +1 -0
- package/lib/hooks/useSPFxUserInfo.d.ts +47 -0
- package/lib/hooks/useSPFxUserInfo.d.ts.map +1 -0
- package/lib/hooks/useSPFxUserInfo.js +47 -0
- package/lib/hooks/useSPFxUserInfo.js.map +1 -0
- package/lib/hooks/useSPFxUserPhoto.d.ts +270 -0
- package/lib/hooks/useSPFxUserPhoto.d.ts.map +1 -0
- package/lib/hooks/useSPFxUserPhoto.js +346 -0
- package/lib/hooks/useSPFxUserPhoto.js.map +1 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +3 -0
- package/lib/index.js.map +1 -0
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/index.d.ts.map +1 -0
- package/lib/utils/index.js +3 -0
- package/lib/utils/index.js.map +1 -0
- package/lib/utils/resize-observer.internal.d.ts +10 -0
- package/lib/utils/resize-observer.internal.d.ts.map +1 -0
- package/lib/utils/resize-observer.internal.js +34 -0
- package/lib/utils/resize-observer.internal.js.map +1 -0
- package/lib/utils/theme-subscription.internal.d.ts +11 -0
- package/lib/utils/theme-subscription.internal.d.ts.map +1 -0
- package/lib/utils/theme-subscription.internal.js +58 -0
- package/lib/utils/theme-subscription.internal.js.map +1 -0
- package/lib/utils/type-guards.internal.d.ts +35 -0
- package/lib/utils/type-guards.internal.d.ts.map +1 -0
- package/lib/utils/type-guards.internal.js +88 -0
- package/lib/utils/type-guards.internal.js.map +1 -0
- package/lib/webparts/spFxReactToolkitTest/SpFxReactToolkitTestWebPart.d.ts +13 -0
- package/lib/webparts/spFxReactToolkitTest/SpFxReactToolkitTestWebPart.d.ts.map +1 -0
- package/lib/webparts/spFxReactToolkitTest/SpFxReactToolkitTestWebPart.js +67 -0
- package/lib/webparts/spFxReactToolkitTest/SpFxReactToolkitTestWebPart.js.map +1 -0
- package/lib/webparts/spFxReactToolkitTest/SpFxReactToolkitTestWebPart.manifest.json +21 -0
- package/lib/webparts/spFxReactToolkitTest/assets/welcome-dark.png +0 -0
- package/lib/webparts/spFxReactToolkitTest/assets/welcome-light.png +0 -0
- package/lib/webparts/spFxReactToolkitTest/components/ISpFxReactToolkitTestProps.d.ts +8 -0
- package/lib/webparts/spFxReactToolkitTest/components/ISpFxReactToolkitTestProps.d.ts.map +1 -0
- package/lib/webparts/spFxReactToolkitTest/components/ISpFxReactToolkitTestProps.js +2 -0
- package/lib/webparts/spFxReactToolkitTest/components/ISpFxReactToolkitTestProps.js.map +1 -0
- package/lib/webparts/spFxReactToolkitTest/components/SpFxReactToolkitTest.d.ts +8 -0
- package/lib/webparts/spFxReactToolkitTest/components/SpFxReactToolkitTest.d.ts.map +1 -0
- package/lib/webparts/spFxReactToolkitTest/components/SpFxReactToolkitTest.js +1351 -0
- package/lib/webparts/spFxReactToolkitTest/components/SpFxReactToolkitTest.js.map +1 -0
- package/lib/webparts/spFxReactToolkitTest/components/SpFxReactToolkitTest.module.css +2 -0
- package/lib/webparts/spFxReactToolkitTest/components/SpFxReactToolkitTest.module.scss.d.ts +18 -0
- package/lib/webparts/spFxReactToolkitTest/components/SpFxReactToolkitTest.module.scss.d.ts.map +1 -0
- package/lib/webparts/spFxReactToolkitTest/components/SpFxReactToolkitTest.module.scss.js +19 -0
- package/lib/webparts/spFxReactToolkitTest/components/SpFxReactToolkitTest.module.scss.js.map +1 -0
- package/lib/webparts/spFxReactToolkitTest/loc/en-us.js +16 -0
- package/package.json +95 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSPFxTenantProperty.js","sourceRoot":"","sources":["../../src/hooks/useSPFxTenantProperty.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { IReadonlyTheme } from '@microsoft/sp-component-base';
|
|
2
|
+
/**
|
|
3
|
+
* Hook to access the current SPFx theme
|
|
4
|
+
*
|
|
5
|
+
* Theme subscription is managed automatically by SPFxProvider.
|
|
6
|
+
* Updates when user switches between light/dark theme or theme settings change.
|
|
7
|
+
*
|
|
8
|
+
* @returns Current theme object or undefined if not yet loaded
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```tsx
|
|
12
|
+
* function MyComponent() {
|
|
13
|
+
* const theme = useSPFxThemeInfo();
|
|
14
|
+
*
|
|
15
|
+
* return (
|
|
16
|
+
* <div style={{
|
|
17
|
+
* backgroundColor: theme?.semanticColors.bodyBackground,
|
|
18
|
+
* color: theme?.semanticColors.bodyText
|
|
19
|
+
* }}>
|
|
20
|
+
* Themed content
|
|
21
|
+
* </div>
|
|
22
|
+
* );
|
|
23
|
+
* }
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare function useSPFxThemeInfo(): IReadonlyTheme | undefined;
|
|
27
|
+
//# sourceMappingURL=useSPFxThemeInfo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSPFxThemeInfo.d.ts","sourceRoot":"","sources":["../../src/hooks/useSPFxThemeInfo.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAGnE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,gBAAgB,IAAI,cAAc,GAAG,SAAS,CAG7D"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// useSPFxThemeInfo.ts
|
|
2
|
+
// Hook to access current SPFx theme
|
|
3
|
+
import { useAtomValue } from 'jotai';
|
|
4
|
+
import { spfxAtoms } from '../core/atoms.internal';
|
|
5
|
+
/**
|
|
6
|
+
* Hook to access the current SPFx theme
|
|
7
|
+
*
|
|
8
|
+
* Theme subscription is managed automatically by SPFxProvider.
|
|
9
|
+
* Updates when user switches between light/dark theme or theme settings change.
|
|
10
|
+
*
|
|
11
|
+
* @returns Current theme object or undefined if not yet loaded
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* function MyComponent() {
|
|
16
|
+
* const theme = useSPFxThemeInfo();
|
|
17
|
+
*
|
|
18
|
+
* return (
|
|
19
|
+
* <div style={{
|
|
20
|
+
* backgroundColor: theme?.semanticColors.bodyBackground,
|
|
21
|
+
* color: theme?.semanticColors.bodyText
|
|
22
|
+
* }}>
|
|
23
|
+
* Themed content
|
|
24
|
+
* </div>
|
|
25
|
+
* );
|
|
26
|
+
* }
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export function useSPFxThemeInfo() {
|
|
30
|
+
// Read current theme value directly from atom
|
|
31
|
+
return useAtomValue(spfxAtoms.theme);
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=useSPFxThemeInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSPFxThemeInfo.js","sourceRoot":"","sources":["../../src/hooks/useSPFxThemeInfo.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,oCAAoC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAErC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,gBAAgB;IAC9B,8CAA8C;IAC9C,OAAO,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Return type for useSPFxUserInfo hook
|
|
3
|
+
*/
|
|
4
|
+
export interface SPFxUserInfo {
|
|
5
|
+
/** User login name (e.g., "domain\\user" or email) */
|
|
6
|
+
readonly loginName: string;
|
|
7
|
+
/** User display name */
|
|
8
|
+
readonly displayName: string;
|
|
9
|
+
/** User email address (optional) */
|
|
10
|
+
readonly email?: string;
|
|
11
|
+
/** Whether user is an external guest user */
|
|
12
|
+
readonly isExternal: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Hook to access current user information
|
|
16
|
+
*
|
|
17
|
+
* Provides:
|
|
18
|
+
* - loginName: Login identifier
|
|
19
|
+
* - displayName: Display name
|
|
20
|
+
* - email: Email address
|
|
21
|
+
* - isExternal: Whether user is a guest
|
|
22
|
+
*
|
|
23
|
+
* Useful for:
|
|
24
|
+
* - Personalization
|
|
25
|
+
* - Authorization checks
|
|
26
|
+
* - User-specific logging
|
|
27
|
+
* - Display user information
|
|
28
|
+
*
|
|
29
|
+
* @returns User information
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```tsx
|
|
33
|
+
* function MyComponent() {
|
|
34
|
+
* const { displayName, email, isExternal } = useSPFxUserInfo();
|
|
35
|
+
*
|
|
36
|
+
* return (
|
|
37
|
+
* <div>
|
|
38
|
+
* <h2>Welcome, {displayName}!</h2>
|
|
39
|
+
* {email && <p>Email: {email}</p>}
|
|
40
|
+
* {isExternal && <p>Guest User</p>}
|
|
41
|
+
* </div>
|
|
42
|
+
* );
|
|
43
|
+
* }
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export declare function useSPFxUserInfo(): SPFxUserInfo;
|
|
47
|
+
//# sourceMappingURL=useSPFxUserInfo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSPFxUserInfo.d.ts","sourceRoot":"","sources":["../../src/hooks/useSPFxUserInfo.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,sDAAsD;IACtD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,wBAAwB;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,oCAAoC;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAExB,6CAA6C;IAC7C,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAW9C"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
// useSPFxUserInfo.ts
|
|
2
|
+
// Hook to access current user information
|
|
3
|
+
import { useSPFxPageContext } from './useSPFxPageContext';
|
|
4
|
+
/**
|
|
5
|
+
* Hook to access current user information
|
|
6
|
+
*
|
|
7
|
+
* Provides:
|
|
8
|
+
* - loginName: Login identifier
|
|
9
|
+
* - displayName: Display name
|
|
10
|
+
* - email: Email address
|
|
11
|
+
* - isExternal: Whether user is a guest
|
|
12
|
+
*
|
|
13
|
+
* Useful for:
|
|
14
|
+
* - Personalization
|
|
15
|
+
* - Authorization checks
|
|
16
|
+
* - User-specific logging
|
|
17
|
+
* - Display user information
|
|
18
|
+
*
|
|
19
|
+
* @returns User information
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```tsx
|
|
23
|
+
* function MyComponent() {
|
|
24
|
+
* const { displayName, email, isExternal } = useSPFxUserInfo();
|
|
25
|
+
*
|
|
26
|
+
* return (
|
|
27
|
+
* <div>
|
|
28
|
+
* <h2>Welcome, {displayName}!</h2>
|
|
29
|
+
* {email && <p>Email: {email}</p>}
|
|
30
|
+
* {isExternal && <p>Guest User</p>}
|
|
31
|
+
* </div>
|
|
32
|
+
* );
|
|
33
|
+
* }
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export function useSPFxUserInfo() {
|
|
37
|
+
var _a;
|
|
38
|
+
var pageContext = useSPFxPageContext();
|
|
39
|
+
var user = pageContext.user;
|
|
40
|
+
return {
|
|
41
|
+
loginName: user.loginName,
|
|
42
|
+
displayName: user.displayName,
|
|
43
|
+
email: user.email,
|
|
44
|
+
isExternal: (_a = user.isExternalGuestUser) !== null && _a !== void 0 ? _a : false,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=useSPFxUserInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSPFxUserInfo.js","sourceRoot":"","sources":["../../src/hooks/useSPFxUserInfo.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,0CAA0C;AAE1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAmB1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,UAAU,eAAe;;IAC7B,IAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;IAEzC,IAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;IAE9B,OAAO;QACL,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,UAAU,EAAE,MAAA,IAAI,CAAC,mBAAmB,mCAAI,KAAK;KAC9C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Available photo sizes from Microsoft Graph
|
|
3
|
+
*/
|
|
4
|
+
export type SPFxUserPhotoSize = '48x48' | '64x64' | '96x96' | '120x120' | '240x240' | '360x360' | '432x432' | '504x504' | '648x648';
|
|
5
|
+
/**
|
|
6
|
+
* Options for loading a specific user's photo
|
|
7
|
+
*/
|
|
8
|
+
export interface SPFxUserPhotoOptions {
|
|
9
|
+
/**
|
|
10
|
+
* User ID (Graph ID or Azure AD Object ID).
|
|
11
|
+
* Example: 'abc-123-def-456'
|
|
12
|
+
*/
|
|
13
|
+
userId?: string;
|
|
14
|
+
/**
|
|
15
|
+
* User email/UPN (User Principal Name).
|
|
16
|
+
* Example: 'user@contoso.com'
|
|
17
|
+
*/
|
|
18
|
+
email?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Photo size to retrieve.
|
|
21
|
+
* Default: '240x240'
|
|
22
|
+
*
|
|
23
|
+
* Available sizes:
|
|
24
|
+
* - 48x48: Tiny avatar
|
|
25
|
+
* - 64x64: Small avatar
|
|
26
|
+
* - 96x96: Standard avatar
|
|
27
|
+
* - 120x120: Medium avatar
|
|
28
|
+
* - 240x240: Large avatar (default)
|
|
29
|
+
* - 360x360+: Extra large profiles
|
|
30
|
+
*/
|
|
31
|
+
size?: SPFxUserPhotoSize;
|
|
32
|
+
/**
|
|
33
|
+
* Whether to automatically fetch photo on mount.
|
|
34
|
+
* Default: true
|
|
35
|
+
*/
|
|
36
|
+
autoFetch?: boolean;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Return type for useSPFxUserPhoto hook
|
|
40
|
+
*/
|
|
41
|
+
export interface SPFxUserPhotoResult {
|
|
42
|
+
/**
|
|
43
|
+
* Photo URL ready for use in <img src={photoUrl} />
|
|
44
|
+
* Generated using URL.createObjectURL() from the blob.
|
|
45
|
+
* Undefined if not loaded yet, on error, or if photo doesn't exist.
|
|
46
|
+
*/
|
|
47
|
+
readonly photoUrl: string | undefined;
|
|
48
|
+
/**
|
|
49
|
+
* Raw photo blob data.
|
|
50
|
+
* Useful if you need to process the image (upload, transform, etc.)
|
|
51
|
+
*/
|
|
52
|
+
readonly photoBlob: Blob | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* Loading state.
|
|
55
|
+
* True while fetching photo from Microsoft Graph.
|
|
56
|
+
*/
|
|
57
|
+
readonly isLoading: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Last error encountered.
|
|
60
|
+
* Common errors:
|
|
61
|
+
* - 404: Photo not found (user has no photo)
|
|
62
|
+
* - 403: Insufficient permissions
|
|
63
|
+
* - 401: Authentication failed
|
|
64
|
+
*/
|
|
65
|
+
readonly error: Error | undefined;
|
|
66
|
+
/**
|
|
67
|
+
* Reload the photo.
|
|
68
|
+
* Useful for refresh buttons or retry logic.
|
|
69
|
+
*
|
|
70
|
+
* @returns Promise that resolves when reload completes
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```tsx
|
|
74
|
+
* const { photoUrl, reload, isLoading } = useSPFxUserPhoto();
|
|
75
|
+
*
|
|
76
|
+
* <button onClick={reload} disabled={isLoading}>
|
|
77
|
+
* Refresh Photo
|
|
78
|
+
* </button>
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
readonly reload: () => Promise<void>;
|
|
82
|
+
/**
|
|
83
|
+
* Computed ready state.
|
|
84
|
+
* True when photo is loaded successfully (photoUrl is available).
|
|
85
|
+
* False while loading, on error, or if photo doesn't exist.
|
|
86
|
+
*
|
|
87
|
+
* Useful for conditional rendering:
|
|
88
|
+
* ```tsx
|
|
89
|
+
* if (!isReady) return <Spinner />;
|
|
90
|
+
* return <img src={photoUrl} />;
|
|
91
|
+
* ```
|
|
92
|
+
*/
|
|
93
|
+
readonly isReady: boolean;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Hook to load user photos from Microsoft Graph API
|
|
97
|
+
*
|
|
98
|
+
* Provides easy access to user profile photos with automatic blob URL management.
|
|
99
|
+
* Supports loading current user's photo or any user's photo by ID or email.
|
|
100
|
+
*
|
|
101
|
+
* Features:
|
|
102
|
+
* - Current user or specific user by ID/email
|
|
103
|
+
* - Multiple photo sizes (48x48 to 648x648)
|
|
104
|
+
* - Automatic blob URL creation and cleanup
|
|
105
|
+
* - Memory leak prevention (revokes URLs on unmount)
|
|
106
|
+
* - Type-safe with TypeScript
|
|
107
|
+
* - Auto-fetch on mount (configurable)
|
|
108
|
+
* - Manual reload function
|
|
109
|
+
*
|
|
110
|
+
* Microsoft Graph Permissions Required:
|
|
111
|
+
* - **User.Read**: Required for current user's photo (/me/photo)
|
|
112
|
+
* - **User.ReadBasic.All**: Required for other users' photos (/users/{id}/photo)
|
|
113
|
+
* - **User.Read.All**: Alternative permission for other users (more privileged)
|
|
114
|
+
*
|
|
115
|
+
* Permission Notes:
|
|
116
|
+
* - Application must have appropriate Graph API permissions configured in Azure AD
|
|
117
|
+
* - Permissions must be consented by admin or user (depending on permission type)
|
|
118
|
+
* - 404 errors typically mean the user has no photo (not a permission issue)
|
|
119
|
+
* - 403 errors indicate insufficient permissions
|
|
120
|
+
*
|
|
121
|
+
* Graph API Endpoints Used:
|
|
122
|
+
* - Current user: GET /me/photo/{size}/$value
|
|
123
|
+
* - By ID: GET /users/{id}/photo/{size}/$value
|
|
124
|
+
* - By email: GET /users/{email}/photo/{size}/$value
|
|
125
|
+
*
|
|
126
|
+
* @param options - Optional. Configuration for loading specific user's photo
|
|
127
|
+
*
|
|
128
|
+
* @example Current user photo
|
|
129
|
+
* ```tsx
|
|
130
|
+
* function UserAvatar() {
|
|
131
|
+
* const { photoUrl, isLoading, error } = useSPFxUserPhoto();
|
|
132
|
+
*
|
|
133
|
+
* if (isLoading) return <Spinner />;
|
|
134
|
+
* if (error) return <DefaultAvatar />;
|
|
135
|
+
*
|
|
136
|
+
* return <img src={photoUrl} alt="User" style={{ width: 240, height: 240 }} />;
|
|
137
|
+
* }
|
|
138
|
+
* ```
|
|
139
|
+
*
|
|
140
|
+
* @example Specific user by email
|
|
141
|
+
* ```tsx
|
|
142
|
+
* function TeamMemberAvatar({ email }: { email: string }) {
|
|
143
|
+
* const { photoUrl, isLoading } = useSPFxUserPhoto({
|
|
144
|
+
* email,
|
|
145
|
+
* size: '96x96'
|
|
146
|
+
* });
|
|
147
|
+
*
|
|
148
|
+
* return (
|
|
149
|
+
* <div>
|
|
150
|
+
* {isLoading ? (
|
|
151
|
+
* <Spinner />
|
|
152
|
+
* ) : (
|
|
153
|
+
* <img src={photoUrl || '/default-avatar.png'} alt={email} />
|
|
154
|
+
* )}
|
|
155
|
+
* </div>
|
|
156
|
+
* );
|
|
157
|
+
* }
|
|
158
|
+
* ```
|
|
159
|
+
*
|
|
160
|
+
* @example Specific user by ID with reload
|
|
161
|
+
* ```tsx
|
|
162
|
+
* function ProfileCard({ userId }: { userId: string }) {
|
|
163
|
+
* const { photoUrl, reload, isLoading, error } = useSPFxUserPhoto({
|
|
164
|
+
* userId,
|
|
165
|
+
* size: '360x360'
|
|
166
|
+
* });
|
|
167
|
+
*
|
|
168
|
+
* return (
|
|
169
|
+
* <Stack>
|
|
170
|
+
* {error ? (
|
|
171
|
+
* <MessageBar messageBarType={MessageBarType.error}>
|
|
172
|
+
* Failed to load photo: {error.message}
|
|
173
|
+
* </MessageBar>
|
|
174
|
+
* ) : (
|
|
175
|
+
* <img src={photoUrl} alt="Profile" />
|
|
176
|
+
* )}
|
|
177
|
+
*
|
|
178
|
+
* <PrimaryButton
|
|
179
|
+
* onClick={reload}
|
|
180
|
+
* disabled={isLoading}
|
|
181
|
+
* text="Refresh Photo"
|
|
182
|
+
* />
|
|
183
|
+
* </Stack>
|
|
184
|
+
* );
|
|
185
|
+
* }
|
|
186
|
+
* ```
|
|
187
|
+
*
|
|
188
|
+
* @example Multiple sizes for responsive images
|
|
189
|
+
* ```tsx
|
|
190
|
+
* function ResponsiveAvatar() {
|
|
191
|
+
* const small = useSPFxUserPhoto({ size: '96x96' });
|
|
192
|
+
* const large = useSPFxUserPhoto({ size: '240x240' });
|
|
193
|
+
*
|
|
194
|
+
* return (
|
|
195
|
+
* <picture>
|
|
196
|
+
* <source media="(min-width: 768px)" srcSet={large.photoUrl} />
|
|
197
|
+
* <img src={small.photoUrl} alt="User Avatar" />
|
|
198
|
+
* </picture>
|
|
199
|
+
* );
|
|
200
|
+
* }
|
|
201
|
+
* ```
|
|
202
|
+
*
|
|
203
|
+
* @example Lazy loading with manual fetch
|
|
204
|
+
* ```tsx
|
|
205
|
+
* function LazyAvatar({ email }: { email: string }) {
|
|
206
|
+
* const { photoUrl, reload, isLoading } = useSPFxUserPhoto({
|
|
207
|
+
* email,
|
|
208
|
+
* autoFetch: false // Don't load on mount
|
|
209
|
+
* });
|
|
210
|
+
*
|
|
211
|
+
* return (
|
|
212
|
+
* <div>
|
|
213
|
+
* {photoUrl ? (
|
|
214
|
+
* <img src={photoUrl} alt="Avatar" />
|
|
215
|
+
* ) : (
|
|
216
|
+
* <button onClick={reload} disabled={isLoading}>
|
|
217
|
+
* {isLoading ? 'Loading...' : 'Load Photo'}
|
|
218
|
+
* </button>
|
|
219
|
+
* )}
|
|
220
|
+
* </div>
|
|
221
|
+
* );
|
|
222
|
+
* }
|
|
223
|
+
* ```
|
|
224
|
+
*
|
|
225
|
+
* @example With error fallback
|
|
226
|
+
* ```tsx
|
|
227
|
+
* function SafeAvatar() {
|
|
228
|
+
* const { photoUrl, error, isReady } = useSPFxUserPhoto();
|
|
229
|
+
*
|
|
230
|
+
* if (!isReady) {
|
|
231
|
+
* return <Persona text="Loading..." size={PersonaSize.size72} />;
|
|
232
|
+
* }
|
|
233
|
+
*
|
|
234
|
+
* if (error || !photoUrl) {
|
|
235
|
+
* // Fallback to Fluent UI Persona with initials
|
|
236
|
+
* return <Persona text="John Doe" size={PersonaSize.size72} />;
|
|
237
|
+
* }
|
|
238
|
+
*
|
|
239
|
+
* return <img src={photoUrl} alt="User" className="avatar-round" />;
|
|
240
|
+
* }
|
|
241
|
+
* ```
|
|
242
|
+
*
|
|
243
|
+
* @example Access raw blob for processing
|
|
244
|
+
* ```tsx
|
|
245
|
+
* function PhotoUploader() {
|
|
246
|
+
* const { photoBlob, photoUrl } = useSPFxUserPhoto();
|
|
247
|
+
*
|
|
248
|
+
* const handleUploadToAzure = async () => {
|
|
249
|
+
* if (!photoBlob) return;
|
|
250
|
+
*
|
|
251
|
+
* const formData = new FormData();
|
|
252
|
+
* formData.append('photo', photoBlob, 'profile.jpg');
|
|
253
|
+
*
|
|
254
|
+
* await fetch('/api/upload', {
|
|
255
|
+
* method: 'POST',
|
|
256
|
+
* body: formData
|
|
257
|
+
* });
|
|
258
|
+
* };
|
|
259
|
+
*
|
|
260
|
+
* return (
|
|
261
|
+
* <div>
|
|
262
|
+
* <img src={photoUrl} alt="Preview" />
|
|
263
|
+
* <button onClick={handleUploadToAzure}>Upload to Azure</button>
|
|
264
|
+
* </div>
|
|
265
|
+
* );
|
|
266
|
+
* }
|
|
267
|
+
* ```
|
|
268
|
+
*/
|
|
269
|
+
export declare function useSPFxUserPhoto(options?: SPFxUserPhotoOptions): SPFxUserPhotoResult;
|
|
270
|
+
//# sourceMappingURL=useSPFxUserPhoto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSPFxUserPhoto.d.ts","sourceRoot":"","sources":["../../src/hooks/useSPFxUserPhoto.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB,OAAO,GACP,OAAO,GACP,OAAO,GACP,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,EAAE,iBAAiB,CAAC;IAEzB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAEtC;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,IAAI,GAAG,SAAS,CAAC;IAErC;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAE5B;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;IAElC;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6KG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,CAAC,EAAE,oBAAoB,GAC7B,mBAAmB,CA0IrB"}
|