local-in-30s / src /utils /layerPresentation.ts
Jacky G
Deploy: gr.Server + React SPA + /api/decode (PNGs via hf CLI)
a8f2679
Raw
History Blame Contribute Delete
1.36 kB
import type { CultureLayer, CultureLayerKey } from '../types/culture';
type LayerPresentation = {
heading: string;
kicker: string;
speechPrefix: string;
};
const layerPresentation: Record<CultureLayerKey, LayerPresentation> = {
l1: {
heading: 'I am looking at...',
kicker: 'First impression',
speechPrefix: 'I am looking at',
},
l2: {
heading: 'Here is the local twist',
kicker: 'What I would miss as a tourist',
speechPrefix: 'Here is the local twist',
},
l3: {
heading: 'I should be careful here',
kicker: 'Local etiquette',
speechPrefix: 'I should be careful here',
},
l4: {
heading: 'Now it feels bigger than it looks',
kicker: 'Why this stays with people',
speechPrefix: 'Now it feels bigger than it looks',
},
};
export function getLayerPresentation(layer: CultureLayer) {
return layerPresentation[layer.key];
}
export function getLayerBody(layer: CultureLayer) {
if (layer.key === 'l3') {
return layer.bullets;
}
return layer.text;
}
export function getLayerSpeechText(layer: CultureLayer) {
const presentation = getLayerPresentation(layer);
if (layer.key === 'l3') {
return `${presentation.speechPrefix}. First, ${layer.bullets[0]} Second, ${layer.bullets[1]} Third, ${layer.bullets[2]}`;
}
return `${presentation.speechPrefix}. ${layer.text}`;
}