Skip to content

Commit

Permalink
chore: refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
CachedaCodes committed Nov 13, 2023
1 parent 879ef27 commit f6b110d
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 19 deletions.
6 changes: 3 additions & 3 deletions src/adapter/adapter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,7 @@ import {
recommendationsRequestSchema,
resultSchema,
semanticQueriesRequestSchema,
experienceControlsResponseSchema,
PlatformExperienceControlsResponse
experienceControlsResponseSchema
} from '@empathyco/x-adapter-platform';
import {
ExperienceControlsResponse,
Expand Down Expand Up @@ -63,9 +62,10 @@ semanticQueriesRequestSchema.$override<

// eslint-disable-next-line @typescript-eslint/no-unsafe-call
experienceControlsResponseSchema.$override<
PlatformExperienceControlsResponse,
Partial<ExperienceControlsResponse>,
Partial<ExperienceControlsResponse>
>({
controls: ({ controls }) => controls,
events: {
SemanticQueriesConfigProvided: {
maxItemsToRequest: 'controls.semanticQueries.numberOfCarousels',
Expand Down
8 changes: 6 additions & 2 deletions src/components/column-picker.vue
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,14 @@
},
setup() {
const { isMobile } = useDevice();
const columns = useExperienceControls().getControlFromPath('layout.columnSelector', [4, 2]);
const { getControlFromPath } = useExperienceControls();
const columns = computed(() =>
isMobile.value ? [2, 1] : getControlFromPath('layout.columnSelector', [4, 2])
);
return {
values: computed(() => (isMobile.value ? [2, 1] : columns)),
values: columns,
icons: { 1: 'Grid1ColIcon', 2: 'Grid2ColIcon', 4: 'Grid4ColIcon' }
};
}
Expand Down
6 changes: 2 additions & 4 deletions src/components/search/custom-semantic-queries.vue
Original file line number Diff line number Diff line change
Expand Up @@ -61,13 +61,11 @@
},
setup() {
const { isAnyQueryLoadedInPreview } = useQueriesPreview();
const maxItems = useExperienceControls().getControlFromPath(
'semanticQueries.resultsPerCarousels'
);
const { getControlFromPath } = useExperienceControls();
return {
isAnyQueryLoadedInPreview,
resultsPerCarousel: maxItems
resultsPerCarousel: getControlFromPath('semanticQueries.resultsPerCarousels')
};
}
});
Expand Down
4 changes: 2 additions & 2 deletions src/components/search/results/results.vue
Original file line number Diff line number Diff line change
Expand Up @@ -76,12 +76,12 @@
},
setup() {
const { isMobile } = useDevice();
const maxItems = useExperienceControls().getControlFromPath('nextQueries.maxItems', 1);
const { getControlFromPath } = useExperienceControls();
return {
staggeredFadeAndSlide: StaggeredFadeAndSlide,
columns: isMobile.value ? 2 : 4,
maxNextQueriesPerGroup: maxItems
maxNextQueriesPerGroup: getControlFromPath('nextQueries.maxItems', 1)
};
}
});
Expand Down
11 changes: 3 additions & 8 deletions src/composables/use-experience-controls.composable.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { computed, ComputedRef } from 'vue';
import { ExtractPath, getSafePropertyChain } from '@empathyco/x-utils';
import { getSafePropertyChain } from '@empathyco/x-utils';
import { ExperienceControlsState } from '@empathyco/x-components/experience-controls';
import { useStore } from './use-store.composable';

Expand All @@ -13,19 +13,14 @@ import { useStore } from './use-store.composable';
export const useExperienceControls = (): {
getControlFromPath: <SomeType>(path: string, defaultValue?: SomeType) => ComputedRef<SomeType>;
} => {
const experienceControls = (useStore('experienceControls') as ExperienceControlsState).controls
.controls;
const experienceControls = (useStore('experienceControls') as ExperienceControlsState).controls;

const getControlFromPath = <SomeType>(
path: string,
defaultValue?: SomeType
): ComputedRef<SomeType> => {
return computed(() => {
return getSafePropertyChain(
experienceControls,
path as ExtractPath<typeof experienceControls>,
defaultValue
) as SomeType;
return getSafePropertyChain(experienceControls, path, defaultValue) as SomeType;
});
};

Expand Down

0 comments on commit f6b110d

Please sign in to comment.