@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":"useSPFxPnPSearch.js","sourceRoot":"","sources":["../../src/hooks/useSPFxPnPSearch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Return type for useSPFxProperties hook
|
|
3
|
+
*/
|
|
4
|
+
export interface SPFxPropertiesInfo<TProps = unknown> {
|
|
5
|
+
/** Current properties object */
|
|
6
|
+
readonly properties: TProps | undefined;
|
|
7
|
+
/**
|
|
8
|
+
* Update properties with partial updates (shallow merge)
|
|
9
|
+
* Changes are automatically synced back to SPFx by the Provider
|
|
10
|
+
*/
|
|
11
|
+
readonly setProperties: (updates: Partial<TProps>) => void;
|
|
12
|
+
/**
|
|
13
|
+
* Update properties using updater function
|
|
14
|
+
* Useful for complex updates based on current state
|
|
15
|
+
* Changes are automatically synced back to SPFx by the Provider
|
|
16
|
+
*/
|
|
17
|
+
readonly updateProperties: (updater: (current: TProps | undefined) => TProps) => void;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Hook to access and manage SPFx properties
|
|
21
|
+
*
|
|
22
|
+
* Properties are the configuration values for WebParts/Extensions that:
|
|
23
|
+
* - Are set via Property Pane
|
|
24
|
+
* - Persist across page loads
|
|
25
|
+
* - Are specific to each instance
|
|
26
|
+
*
|
|
27
|
+
* This hook provides:
|
|
28
|
+
* - Type-safe access to properties
|
|
29
|
+
* - Partial updates (merge with existing)
|
|
30
|
+
* - Updater function pattern (like React setState)
|
|
31
|
+
* - Automatic bidirectional sync with SPFx (managed by Provider)
|
|
32
|
+
*
|
|
33
|
+
* The SPFxProvider automatically handles synchronization:
|
|
34
|
+
* - Property Pane changes → Atom → Hook (automatic)
|
|
35
|
+
* - Hook updates → Atom → SPFx properties (automatic)
|
|
36
|
+
* - Property Pane refresh for WebParts (automatic)
|
|
37
|
+
*
|
|
38
|
+
* @returns Properties and setter functions
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```tsx
|
|
42
|
+
* interface IMyWebPartProps {
|
|
43
|
+
* title: string;
|
|
44
|
+
* description: string;
|
|
45
|
+
* listId?: string;
|
|
46
|
+
* }
|
|
47
|
+
*
|
|
48
|
+
* function MyComponent() {
|
|
49
|
+
* const { properties, setProperties, updateProperties } = useSPFxProperties<IMyWebPartProps>();
|
|
50
|
+
*
|
|
51
|
+
* return (
|
|
52
|
+
* <div>
|
|
53
|
+
* <h1>{properties?.title ?? 'Default Title'}</h1>
|
|
54
|
+
* <p>{properties?.description}</p>
|
|
55
|
+
*
|
|
56
|
+
* <button onClick={() => setProperties({ title: 'New Title' })}>
|
|
57
|
+
* Update Title
|
|
58
|
+
* </button>
|
|
59
|
+
*
|
|
60
|
+
* <button onClick={() => updateProperties(prev => ({
|
|
61
|
+
* ...prev,
|
|
62
|
+
* title: (prev?.title ?? '') + ' Updated'
|
|
63
|
+
* }))}>
|
|
64
|
+
* Append to Title
|
|
65
|
+
* </button>
|
|
66
|
+
* </div>
|
|
67
|
+
* );
|
|
68
|
+
* }
|
|
69
|
+
*
|
|
70
|
+
* // In WebPart render():
|
|
71
|
+
* // Just pass the instance - sync is automatic!
|
|
72
|
+
* const element = React.createElement(
|
|
73
|
+
* SPFxProvider,
|
|
74
|
+
* { instance: this },
|
|
75
|
+
* React.createElement(MyComponent)
|
|
76
|
+
* );
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
export declare function useSPFxProperties<TProps = unknown>(): SPFxPropertiesInfo<TProps>;
|
|
80
|
+
//# sourceMappingURL=useSPFxProperties.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSPFxProperties.d.ts","sourceRoot":"","sources":["../../src/hooks/useSPFxProperties.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,MAAM,GAAG,OAAO;IAClD,gCAAgC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAExC;;;OAGG;IACH,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAE3D;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,KAAK,IAAI,CAAC;CACvF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,GAAG,OAAO,KAAK,kBAAkB,CAAC,MAAM,CAAC,CAyBhF"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
// useSPFxProperties.ts
|
|
2
|
+
// Hook to access and manage SPFx properties
|
|
3
|
+
var __assign = (this && this.__assign) || function () {
|
|
4
|
+
__assign = Object.assign || function(t) {
|
|
5
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
6
|
+
s = arguments[i];
|
|
7
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
8
|
+
t[p] = s[p];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
return __assign.apply(this, arguments);
|
|
13
|
+
};
|
|
14
|
+
import { useAtomValue, useSetAtom } from 'jotai';
|
|
15
|
+
import { spfxAtoms } from './../core/atoms.internal';
|
|
16
|
+
/**
|
|
17
|
+
* Hook to access and manage SPFx properties
|
|
18
|
+
*
|
|
19
|
+
* Properties are the configuration values for WebParts/Extensions that:
|
|
20
|
+
* - Are set via Property Pane
|
|
21
|
+
* - Persist across page loads
|
|
22
|
+
* - Are specific to each instance
|
|
23
|
+
*
|
|
24
|
+
* This hook provides:
|
|
25
|
+
* - Type-safe access to properties
|
|
26
|
+
* - Partial updates (merge with existing)
|
|
27
|
+
* - Updater function pattern (like React setState)
|
|
28
|
+
* - Automatic bidirectional sync with SPFx (managed by Provider)
|
|
29
|
+
*
|
|
30
|
+
* The SPFxProvider automatically handles synchronization:
|
|
31
|
+
* - Property Pane changes → Atom → Hook (automatic)
|
|
32
|
+
* - Hook updates → Atom → SPFx properties (automatic)
|
|
33
|
+
* - Property Pane refresh for WebParts (automatic)
|
|
34
|
+
*
|
|
35
|
+
* @returns Properties and setter functions
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```tsx
|
|
39
|
+
* interface IMyWebPartProps {
|
|
40
|
+
* title: string;
|
|
41
|
+
* description: string;
|
|
42
|
+
* listId?: string;
|
|
43
|
+
* }
|
|
44
|
+
*
|
|
45
|
+
* function MyComponent() {
|
|
46
|
+
* const { properties, setProperties, updateProperties } = useSPFxProperties<IMyWebPartProps>();
|
|
47
|
+
*
|
|
48
|
+
* return (
|
|
49
|
+
* <div>
|
|
50
|
+
* <h1>{properties?.title ?? 'Default Title'}</h1>
|
|
51
|
+
* <p>{properties?.description}</p>
|
|
52
|
+
*
|
|
53
|
+
* <button onClick={() => setProperties({ title: 'New Title' })}>
|
|
54
|
+
* Update Title
|
|
55
|
+
* </button>
|
|
56
|
+
*
|
|
57
|
+
* <button onClick={() => updateProperties(prev => ({
|
|
58
|
+
* ...prev,
|
|
59
|
+
* title: (prev?.title ?? '') + ' Updated'
|
|
60
|
+
* }))}>
|
|
61
|
+
* Append to Title
|
|
62
|
+
* </button>
|
|
63
|
+
* </div>
|
|
64
|
+
* );
|
|
65
|
+
* }
|
|
66
|
+
*
|
|
67
|
+
* // In WebPart render():
|
|
68
|
+
* // Just pass the instance - sync is automatic!
|
|
69
|
+
* const element = React.createElement(
|
|
70
|
+
* SPFxProvider,
|
|
71
|
+
* { instance: this },
|
|
72
|
+
* React.createElement(MyComponent)
|
|
73
|
+
* );
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
export function useSPFxProperties() {
|
|
77
|
+
// Read current properties directly from atom (cast to generic type)
|
|
78
|
+
var properties = useAtomValue(spfxAtoms.properties);
|
|
79
|
+
// Get setter (stable reference from Jotai)
|
|
80
|
+
var setPropertiesAtom = useSetAtom(spfxAtoms.properties);
|
|
81
|
+
// Setter with partial merge (functional update for stable dependencies)
|
|
82
|
+
var setProperties = function (updates) {
|
|
83
|
+
setPropertiesAtom(function (prev) { return (__assign(__assign({}, (prev !== null && prev !== void 0 ? prev : {})), updates)); });
|
|
84
|
+
};
|
|
85
|
+
// Updater function pattern (like React setState)
|
|
86
|
+
var updateProperties = function (updater) {
|
|
87
|
+
setPropertiesAtom(function (prev) { return updater(prev); });
|
|
88
|
+
};
|
|
89
|
+
return {
|
|
90
|
+
properties: properties,
|
|
91
|
+
setProperties: setProperties,
|
|
92
|
+
updateProperties: updateProperties,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=useSPFxProperties.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSPFxProperties.js","sourceRoot":"","sources":["../../src/hooks/useSPFxProperties.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,4CAA4C;;;;;;;;;;;;AAE5C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAuBrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,MAAM,UAAU,iBAAiB;IAC/B,oEAAoE;IACpE,IAAM,UAAU,GAAG,YAAY,CAAC,SAAS,CAAC,UAAU,CAAuB,CAAC;IAE5E,2CAA2C;IAC3C,IAAM,iBAAiB,GAAG,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAE3D,wEAAwE;IACxE,IAAM,aAAa,GAAG,UAAC,OAAwB;QAC7C,iBAAiB,CAAC,UAAC,IAAa,IAAK,OAAA,uBAChC,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAY,CAAC,GACtB,OAAO,EACV,EAHmC,CAGnC,CAAC,CAAC;IACN,CAAC,CAAC;IAEF,iDAAiD;IACjD,IAAM,gBAAgB,GAAG,UAAC,OAAgD;QACxE,iBAAiB,CAAC,UAAC,IAAa,IAAK,OAAA,OAAO,CAAC,IAA0B,CAAC,EAAnC,CAAmC,CAAC,CAAC;IAC5E,CAAC,CAAC;IAEF,OAAO;QACL,UAAU,YAAA;QACV,aAAa,eAAA;QACb,gBAAgB,kBAAA;KACjB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import type { SPHttpClient } from '@microsoft/sp-http';
|
|
2
|
+
/**
|
|
3
|
+
* Return type for useSPFxSPHttpClient hook
|
|
4
|
+
*/
|
|
5
|
+
export interface SPFxSPHttpClientInfo {
|
|
6
|
+
/**
|
|
7
|
+
* Native SPHttpClient from SPFx.
|
|
8
|
+
* Provides access to SharePoint REST APIs with built-in authentication.
|
|
9
|
+
*/
|
|
10
|
+
readonly client: SPHttpClient | undefined;
|
|
11
|
+
/**
|
|
12
|
+
* Invoke SharePoint REST API call with automatic state management.
|
|
13
|
+
* Tracks loading state and captures errors automatically.
|
|
14
|
+
*
|
|
15
|
+
* @param fn - Function that receives SPHttpClient and returns a promise
|
|
16
|
+
* @returns Promise with the result
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```tsx
|
|
20
|
+
* const { invoke } = useSPFxSPHttpClient();
|
|
21
|
+
*
|
|
22
|
+
* const web = await invoke(client =>
|
|
23
|
+
* client.get(`${baseUrl}/_api/web`, SPHttpClient.configurations.v1)
|
|
24
|
+
* .then(res => res.json())
|
|
25
|
+
* );
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
readonly invoke: <T>(fn: (client: SPHttpClient) => Promise<T>) => Promise<T>;
|
|
29
|
+
/**
|
|
30
|
+
* Loading state - true during invoke() calls.
|
|
31
|
+
* Does not track direct client usage.
|
|
32
|
+
*/
|
|
33
|
+
readonly isLoading: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Last error from invoke() calls.
|
|
36
|
+
* Does not capture errors from direct client usage.
|
|
37
|
+
*/
|
|
38
|
+
readonly error: Error | undefined;
|
|
39
|
+
/** Clear the current error */
|
|
40
|
+
readonly clearError: () => void;
|
|
41
|
+
/** Set or change the base URL (for cross-site queries) */
|
|
42
|
+
readonly setBaseUrl: (url: string) => void;
|
|
43
|
+
/** Current base URL (site absolute URL) */
|
|
44
|
+
readonly baseUrl: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Hook to access SharePoint REST APIs with built-in state management
|
|
48
|
+
*
|
|
49
|
+
* Provides native SPHttpClient for authenticated SharePoint REST API access.
|
|
50
|
+
* Offers two usage patterns:
|
|
51
|
+
*
|
|
52
|
+
* 1. **invoke()** - Automatic state management (loading + error tracking)
|
|
53
|
+
* 2. **client** - Direct access for full control
|
|
54
|
+
*
|
|
55
|
+
* For type safety, import SPFx types:
|
|
56
|
+
* ```typescript
|
|
57
|
+
* import type { SPHttpClient } from '@microsoft/sp-http';
|
|
58
|
+
* ```
|
|
59
|
+
*
|
|
60
|
+
* Requirements:
|
|
61
|
+
* - SPHttpClient available in SPFx context
|
|
62
|
+
* - Appropriate SharePoint permissions for target APIs
|
|
63
|
+
*
|
|
64
|
+
* @param initialBaseUrl - Base URL for SharePoint site (optional, defaults to current site)
|
|
65
|
+
*
|
|
66
|
+
* @example Using invoke with state management
|
|
67
|
+
* ```tsx
|
|
68
|
+
* function WebInfo() {
|
|
69
|
+
* const { invoke, isLoading, error, clearError, baseUrl } = useSPFxSPHttpClient();
|
|
70
|
+
* const [webTitle, setWebTitle] = useState<string>('');
|
|
71
|
+
*
|
|
72
|
+
* const loadWeb = () => {
|
|
73
|
+
* invoke(client =>
|
|
74
|
+
* client.get(
|
|
75
|
+
* `${baseUrl}/_api/web?$select=Title`,
|
|
76
|
+
* SPHttpClient.configurations.v1
|
|
77
|
+
* ).then(res => res.json())
|
|
78
|
+
* ).then(web => setWebTitle(web.Title));
|
|
79
|
+
* };
|
|
80
|
+
*
|
|
81
|
+
* useEffect(() => { loadWeb(); }, []);
|
|
82
|
+
*
|
|
83
|
+
* if (isLoading) return <Spinner />;
|
|
84
|
+
* if (error) return (
|
|
85
|
+
* <MessageBar messageBarType={MessageBarType.error}>
|
|
86
|
+
* {error.message}
|
|
87
|
+
* <Link onClick={() => { clearError(); loadWeb(); }}>Retry</Link>
|
|
88
|
+
* </MessageBar>
|
|
89
|
+
* );
|
|
90
|
+
*
|
|
91
|
+
* return <h1>{webTitle}</h1>;
|
|
92
|
+
* }
|
|
93
|
+
* ```
|
|
94
|
+
*
|
|
95
|
+
* @example Using client directly for advanced control
|
|
96
|
+
* ```tsx
|
|
97
|
+
* import type { SPHttpClient } from '@microsoft/sp-http';
|
|
98
|
+
*
|
|
99
|
+
* function ListItems() {
|
|
100
|
+
* const { client, baseUrl } = useSPFxSPHttpClient();
|
|
101
|
+
* const [items, setItems] = useState([]);
|
|
102
|
+
* const [loading, setLoading] = useState(false);
|
|
103
|
+
*
|
|
104
|
+
* if (!client) return <Spinner label="Initializing HTTP client..." />;
|
|
105
|
+
*
|
|
106
|
+
* const loadItems = async () => {
|
|
107
|
+
* setLoading(true);
|
|
108
|
+
* try {
|
|
109
|
+
* const response = await client.get(
|
|
110
|
+
* `${baseUrl}/_api/web/lists/getbytitle('Tasks')/items`,
|
|
111
|
+
* SPHttpClient.configurations.v1
|
|
112
|
+
* );
|
|
113
|
+
* const data = await response.json();
|
|
114
|
+
* setItems(data.value);
|
|
115
|
+
* } catch (err) {
|
|
116
|
+
* console.error(err);
|
|
117
|
+
* } finally {
|
|
118
|
+
* setLoading(false);
|
|
119
|
+
* }
|
|
120
|
+
* };
|
|
121
|
+
*
|
|
122
|
+
* return (
|
|
123
|
+
* <>
|
|
124
|
+
* <button onClick={loadItems} disabled={loading}>Load</button>
|
|
125
|
+
* {loading && <Spinner />}
|
|
126
|
+
* <DetailsList items={items} />
|
|
127
|
+
* </>
|
|
128
|
+
* );
|
|
129
|
+
* }
|
|
130
|
+
* ```
|
|
131
|
+
*
|
|
132
|
+
* @example CRUD operations with invoke
|
|
133
|
+
* ```tsx
|
|
134
|
+
* function TasksManager() {
|
|
135
|
+
* const { invoke, isLoading, error, baseUrl } = useSPFxSPHttpClient();
|
|
136
|
+
* const [tasks, setTasks] = useState([]);
|
|
137
|
+
*
|
|
138
|
+
* const loadTasks = () => {
|
|
139
|
+
* invoke(client =>
|
|
140
|
+
* client.get(
|
|
141
|
+
* `${baseUrl}/_api/web/lists/getbytitle('Tasks')/items`,
|
|
142
|
+
* SPHttpClient.configurations.v1
|
|
143
|
+
* ).then(res => res.json())
|
|
144
|
+
* ).then(data => setTasks(data.value));
|
|
145
|
+
* };
|
|
146
|
+
*
|
|
147
|
+
* const createTask = (title: string) => {
|
|
148
|
+
* invoke(client =>
|
|
149
|
+
* client.post(
|
|
150
|
+
* `${baseUrl}/_api/web/lists/getbytitle('Tasks')/items`,
|
|
151
|
+
* SPHttpClient.configurations.v1,
|
|
152
|
+
* { body: JSON.stringify({ Title: title }) }
|
|
153
|
+
* ).then(res => res.json())
|
|
154
|
+
* ).then(loadTasks);
|
|
155
|
+
* };
|
|
156
|
+
*
|
|
157
|
+
* const updateTask = (id: number, changes: any) => {
|
|
158
|
+
* invoke(client =>
|
|
159
|
+
* client.post(
|
|
160
|
+
* `${baseUrl}/_api/web/lists/getbytitle('Tasks')/items(${id})`,
|
|
161
|
+
* SPHttpClient.configurations.v1,
|
|
162
|
+
* {
|
|
163
|
+
* headers: { 'IF-MATCH': '*', 'X-HTTP-Method': 'MERGE' },
|
|
164
|
+
* body: JSON.stringify(changes)
|
|
165
|
+
* }
|
|
166
|
+
* )
|
|
167
|
+
* ).then(loadTasks);
|
|
168
|
+
* };
|
|
169
|
+
*
|
|
170
|
+
* const deleteTask = (id: number) => {
|
|
171
|
+
* invoke(client =>
|
|
172
|
+
* client.post(
|
|
173
|
+
* `${baseUrl}/_api/web/lists/getbytitle('Tasks')/items(${id})`,
|
|
174
|
+
* SPHttpClient.configurations.v1,
|
|
175
|
+
* {
|
|
176
|
+
* headers: { 'IF-MATCH': '*', 'X-HTTP-Method': 'DELETE' }
|
|
177
|
+
* }
|
|
178
|
+
* )
|
|
179
|
+
* ).then(loadTasks);
|
|
180
|
+
* };
|
|
181
|
+
*
|
|
182
|
+
* return (
|
|
183
|
+
* <TasksUI
|
|
184
|
+
* tasks={tasks}
|
|
185
|
+
* loading={isLoading}
|
|
186
|
+
* error={error}
|
|
187
|
+
* onCreate={createTask}
|
|
188
|
+
* onUpdate={updateTask}
|
|
189
|
+
* onDelete={deleteTask}
|
|
190
|
+
* />
|
|
191
|
+
* );
|
|
192
|
+
* }
|
|
193
|
+
* ```
|
|
194
|
+
*
|
|
195
|
+
* @example Cross-site queries
|
|
196
|
+
* ```tsx
|
|
197
|
+
* function MultiSiteData() {
|
|
198
|
+
* const { invoke, setBaseUrl, baseUrl } = useSPFxSPHttpClient(
|
|
199
|
+
* 'https://contoso.sharepoint.com/sites/hr'
|
|
200
|
+
* );
|
|
201
|
+
*
|
|
202
|
+
* const switchToFinance = () => {
|
|
203
|
+
* setBaseUrl('https://contoso.sharepoint.com/sites/finance');
|
|
204
|
+
* };
|
|
205
|
+
*
|
|
206
|
+
* const loadLists = () => {
|
|
207
|
+
* invoke(client =>
|
|
208
|
+
* client.get(
|
|
209
|
+
* `${baseUrl}/_api/web/lists`,
|
|
210
|
+
* SPHttpClient.configurations.v1
|
|
211
|
+
* ).then(res => res.json())
|
|
212
|
+
* ).then(data => console.log(data.value));
|
|
213
|
+
* };
|
|
214
|
+
* }
|
|
215
|
+
* ```
|
|
216
|
+
*/
|
|
217
|
+
export declare function useSPFxSPHttpClient(initialBaseUrl?: string): SPFxSPHttpClientInfo;
|
|
218
|
+
//# sourceMappingURL=useSPFxSPHttpClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSPFxSPHttpClient.d.ts","sourceRoot":"","sources":["../../src/hooks/useSPFxSPHttpClient.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC;IAE1C;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAE7E;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAE5B;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;IAElC,8BAA8B;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;IAEhC,0DAA0D;IAC1D,QAAQ,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAE3C,2CAA2C;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0KG;AACH,wBAAgB,mBAAmB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAiFjF"}
|