| 1 |
import { getHomeTemplates } from '@launch/api/DataApi'; |
| 2 |
import { useSiteImages } from '@launch/hooks/useSiteImages'; |
| 3 |
import { useSiteProfile } from '@launch/hooks/useSiteProfile'; |
| 4 |
import { useSiteStrings } from '@launch/hooks/useSiteStrings'; |
| 5 |
import { useSiteStyles } from '@launch/hooks/useSiteStyles'; |
| 6 |
import { useUserSelectionStore } from '@launch/state/user-selections'; |
| 7 |
import { formatSiteQuestionsForAPI } from '@shared/utils/format-site-questions-for-api'; |
| 8 |
import useSWRImmutable from 'swr/immutable'; |
| 9 |
|
| 10 |
export const useHomeLayouts = ({ disableFetch = false } = {}) => { |
| 11 |
const { siteType, siteStructure, siteObjective, siteQA, sitePlugins } = |
| 12 |
useUserSelectionStore(); |
| 13 |
const { siteStrings } = useSiteStrings(); |
| 14 |
const { siteProfile } = useSiteProfile(); |
| 15 |
const { siteImages } = useSiteImages(); |
| 16 |
const { siteStyles } = useSiteStyles(); |
| 17 |
|
| 18 |
const loading = |
| 19 |
!siteStructure || |
| 20 |
!siteProfile || |
| 21 |
!siteStrings || |
| 22 |
!siteImages || |
| 23 |
!siteStyles || |
| 24 |
disableFetch; |
| 25 |
|
| 26 |
const params = { |
| 27 |
key: 'home-layouts', |
| 28 |
siteType, |
| 29 |
siteStructure, |
| 30 |
siteProfile, |
| 31 |
siteStrings, |
| 32 |
siteImages, |
| 33 |
siteStyles, |
| 34 |
siteObjective, |
| 35 |
siteQuestions: formatSiteQuestionsForAPI(siteQA), |
| 36 |
sitePlugins, |
| 37 |
}; |
| 38 |
|
| 39 |
const { data, error } = useSWRImmutable( |
| 40 |
loading ? null : params, |
| 41 |
getHomeTemplates, |
| 42 |
); |
| 43 |
|
| 44 |
return { homeLayouts: data, error, loading: !data && !error }; |
| 45 |
}; |
| 46 |
|