diff --git a/common/changes/@itwin/imodel-browser-react/leobelanger-disable-favorites_2025-11-18-21-33.json b/common/changes/@itwin/imodel-browser-react/leobelanger-disable-favorites_2025-11-18-21-33.json
new file mode 100644
index 00000000..9988e65d
--- /dev/null
+++ b/common/changes/@itwin/imodel-browser-react/leobelanger-disable-favorites_2025-11-18-21-33.json
@@ -0,0 +1,10 @@
+{
+ "changes": [
+ {
+ "packageName": "@itwin/imodel-browser-react",
+ "comment": "use `hideFavoriteIcon` option to disable fetching favorite iModels",
+ "type": "minor"
+ }
+ ],
+ "packageName": "@itwin/imodel-browser-react"
+}
\ No newline at end of file
diff --git a/packages/modules/imodel-browser/src/containers/iModelGrid/IModelGrid.tsx b/packages/modules/imodel-browser/src/containers/iModelGrid/IModelGrid.tsx
index 86e20e78..63688e78 100644
--- a/packages/modules/imodel-browser/src/containers/iModelGrid/IModelGrid.tsx
+++ b/packages/modules/imodel-browser/src/containers/iModelGrid/IModelGrid.tsx
@@ -119,6 +119,7 @@ export const IModelGrid = (props: IModelGridProps) => {
iTwinId={props.iTwinId}
accessToken={props.accessToken}
serverEnvironmentPrefix={props.apiOverrides?.serverEnvironmentPrefix}
+ disabled={props.tileOverrides?.hideFavoriteIcon}
>
diff --git a/packages/modules/imodel-browser/src/containers/iModelGrid/useIModelFavorites.ts b/packages/modules/imodel-browser/src/containers/iModelGrid/useIModelFavorites.ts
index bde97048..68595f3a 100644
--- a/packages/modules/imodel-browser/src/containers/iModelGrid/useIModelFavorites.ts
+++ b/packages/modules/imodel-browser/src/containers/iModelGrid/useIModelFavorites.ts
@@ -13,6 +13,7 @@ import * as iModelApi from "../../utils/iModelApi";
* @param iTwinId - The ID of the iTwin for which to fetch favorites.
* @param accessToken - Access token that requires the `itwin-platform` scope. Provide a function that returns the token to prevent the token from expiring.
* @param serverEnvironmentPrefix - Optional server environment prefix.
+ * @param disabled - Optional flag to disable fetching of the favorites in the hook.
* @returns An object containing:
* - {Set} iModelFavorites - A set of iModel IDs that are marked as favorites.
* - {function} addIModelToFavorites - A function to add an iModel to favorites.
@@ -21,7 +22,8 @@ import * as iModelApi from "../../utils/iModelApi";
export const useIModelFavorites = (
iTwinId: string | undefined,
accessToken: AccessTokenProvider | undefined,
- serverEnvironmentPrefix?: "dev" | "qa" | ""
+ serverEnvironmentPrefix?: "dev" | "qa" | "",
+ disabled?: boolean
): {
iModelFavorites: Set;
addIModelToFavorites: (iModelId: string) => Promise;
@@ -91,7 +93,7 @@ export const useIModelFavorites = (
*/
const fetchIModelFavorites = async (abortSignal?: AbortSignal) => {
try {
- if (!iTwinId || !accessToken) {
+ if (disabled || !iTwinId || !accessToken) {
setIModelFavorites(new Set());
return;
}
@@ -115,7 +117,7 @@ export const useIModelFavorites = (
return () => {
controller.abort();
};
- }, [iTwinId, accessToken, serverEnvironmentPrefix]);
+ }, [disabled, iTwinId, accessToken, serverEnvironmentPrefix]);
return {
iModelFavorites,
diff --git a/packages/modules/imodel-browser/src/contexts/IModelFavoritesContext.tsx b/packages/modules/imodel-browser/src/contexts/IModelFavoritesContext.tsx
index fb6aa6d7..227bc337 100644
--- a/packages/modules/imodel-browser/src/contexts/IModelFavoritesContext.tsx
+++ b/packages/modules/imodel-browser/src/contexts/IModelFavoritesContext.tsx
@@ -22,6 +22,7 @@ export interface IModelFavoritesProviderProps {
accessToken?: AccessTokenProvider;
serverEnvironmentPrefix?: string;
children: React.ReactNode;
+ disabled?: boolean;
}
export const IModelFavoritesProvider = ({
@@ -29,6 +30,7 @@ export const IModelFavoritesProvider = ({
accessToken,
serverEnvironmentPrefix,
children,
+ disabled,
}: IModelFavoritesProviderProps) => {
const { iModelFavorites, addIModelToFavorites, removeIModelFromFavorites } =
useIModelFavorites(
@@ -36,7 +38,8 @@ export const IModelFavoritesProvider = ({
accessToken,
serverEnvironmentPrefix === "dev" || serverEnvironmentPrefix === "qa"
? serverEnvironmentPrefix
- : undefined
+ : undefined,
+ disabled
);
const value = React.useMemo(