Skip to content

Commit

Permalink
refactor(@dpc-sdp/nuxt-ripple): make image fallback to existing site …
Browse files Browse the repository at this point in the history
…assets, use merged theme
  • Loading branch information
David Featherston committed Jul 15, 2024
1 parent 2188fb8 commit 2f82084
Show file tree
Hide file tree
Showing 12 changed files with 26 additions and 19 deletions.
4 changes: 2 additions & 2 deletions packages/nuxt-ripple/components/TideBaseLayout.vue
Original file line number Diff line number Diff line change
Expand Up @@ -170,8 +170,8 @@ const footerNav = computed(() => {
*/
await nuxtApp.callHook('tide:page', props)
useTideSiteTheme(props.site)
const theme = useTideSiteTheme(props.site)
useTideHideAlerts()
useTideSiteMeta(props, nuxtApp?.$app_origin)
useTideFavicons(props.site)
useTideFavicons(props.site, theme)
</script>
16 changes: 7 additions & 9 deletions packages/nuxt-ripple/composables/use-tide-favicons.ts
Original file line number Diff line number Diff line change
@@ -1,23 +1,21 @@
import { TideSiteData } from '../types'

export default (site: TideSiteData) => {
const theme = useAppConfig()?.ripple?.theme
export default (site: TideSiteData, theme: any) => {
const { public: config } = useRuntimeConfig()

let link = []
const favicon = site.favicon?.src ?? '/favicon.png'
const appIcon = site.appIcon?.src ?? '/app-icon.png'
const siteUrl = config?.siteUrl || ''
const themeColour = theme?.['rpl-clr-primary'] ?? '#ffffff'

const manifest = {
id: config?.siteUrl,
id: siteUrl,
name: site?.name,
short_name: site?.shortName,
description: site?.slogan?.replace(/<[^>]*>/g, ''),
start_url: config?.siteUrl,
start_url: siteUrl,
icons: [
{
src: appIcon,
src: site.appIcon?.src ?? siteUrl + (site.appIcon?.android || ''),
sizes: 'any'
}
],
Expand All @@ -28,7 +26,7 @@ export default (site: TideSiteData) => {

link.push({
rel: 'apple-touch-icon',
href: appIcon
href: site.appIcon?.src ?? site.appIcon?.apple
})

link.push({
Expand All @@ -38,7 +36,7 @@ export default (site: TideSiteData) => {

link.push({
rel: 'icon',
href: favicon
href: site.favicon?.src
})

useHead({ link, meta: [{ name: 'theme-color', content: themeColour }] })
Expand Down
2 changes: 2 additions & 0 deletions packages/nuxt-ripple/composables/use-tide-site-theme.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,6 @@ export default (site) => {
]
})
}

return siteTheme
}
9 changes: 7 additions & 2 deletions packages/nuxt-ripple/mapping/site/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,13 @@ export default {
process.env.NODE_ENV === 'development' ? src : undefined,
siteAlerts: siteAlertsMapping,
slogan: (src: any) => getBodyFromField(src, 'field_site_slogan'),
favicon: (src: any) => getImageFromField(src, 'field_site_favicon'),
appIcon: (src: any) => getImageFromField(src, 'field_site_app_icon'),
favicon: (src: any) =>
getImageFromField(src, 'field_site_favicon', { src: '/favicon.ico' }),
appIcon: (src: any) =>
getImageFromField(src, 'field_site_app_icon', {
apple: '/apple-touch-icon.png',
android: '/android-chrome-512x512.png'
}),
siteLogo: (src: any) => {
if (src.field_site_logo) {
return {
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed packages/nuxt-ripple/public/app-icon.png
Binary file not shown.
Binary file added packages/nuxt-ripple/public/apple-touch-icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added packages/nuxt-ripple/public/favicon.ico
Binary file not shown.
Binary file removed packages/nuxt-ripple/public/favicon.png
Binary file not shown.
6 changes: 3 additions & 3 deletions packages/nuxt-ripple/types.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ export interface TideSiteData {
height: string
}
appIcon?: {
src: string
width: string
height: string
src?: string
apple?: string
android?: string
}
acknowledgementHeader?: string
acknowledgementFooter: string
Expand Down
5 changes: 3 additions & 2 deletions packages/ripple-tide-api/src/utils/mapping-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,11 @@ export const removeDomainFromPath = (path: string) =>

export const getImageFromField = (
field: object,
path: string | string[]
path: string | string[],
fallback: any = null
): TideImageField | null => {
const image = get(field, path)
return image ? getMediaImage(image) : null
return image ? getMediaImage(image) : fallback
}

export const getCardImageFromField = (
Expand Down
3 changes: 2 additions & 1 deletion packages/ripple-tide-api/types.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -312,7 +312,8 @@ export function getField(
): any
export function getImageFromField(
field: string,
path: string | string[]
path: string | string[],
fallback?: any
): string
export function getLinkFromField(field: any, path: string | string[]): any
export function humanizeFilesize(fileSize: number): string
Expand Down

0 comments on commit 2f82084

Please sign in to comment.