MCPcopy
hub / github.com/prabhuignoto/react-chrono / createTextResolver

Function createTextResolver

src/utils/textResolver.ts:76–321  ·  view source on GitHub ↗
(
  i18nHelper?: ReturnType<typeof useI18n>,
  buttonTexts?: ButtonTexts,
)

Source from the content-addressed store, hash-verified

74 * Creates a text resolver that handles i18n, legacy, and default fallbacks
75 */
76export function createTextResolver(
77 i18nHelper?: ReturnType<typeof useI18n>,
78 buttonTexts?: ButtonTexts,
79): TextResolver {
80 // Helper function to resolve text with priority: i18n > legacy > default
81 const resolve = (
82 i18nGetter: (() => string) | undefined,
83 legacyValue: string | undefined,
84 defaultValue: string,
85 ): string => {
86 if (i18nGetter) {
87 const i18nValue = i18nGetter();
88 if (i18nValue !== undefined) return i18nValue;
89 }
90 return legacyValue !== undefined ? legacyValue : defaultValue;
91 };
92
93 return {
94 // Navigation texts
95 firstItem: () =>
96 resolve(
97 i18nHelper?.navigation.first,
98 buttonTexts?.first,
99 'Go to first item',
100 ),
101
102 lastItem: () =>
103 resolve(
104 i18nHelper?.navigation.last,
105 buttonTexts?.last,
106 'Go to last item',
107 ),
108
109 nextItem: () =>
110 resolve(i18nHelper?.navigation.next, buttonTexts?.next, 'Next item'),
111
112 previousItem: () =>
113 resolve(
114 i18nHelper?.navigation.previous,
115 buttonTexts?.previous,
116 'Previous item',
117 ),
118
119 playSlideshow: () =>
120 resolve(
121 i18nHelper?.navigation.play,
122 buttonTexts?.play,
123 'Start slideshow',
124 ),
125
126 stopSlideshow: () =>
127 resolve(i18nHelper?.navigation.stop, buttonTexts?.stop, 'Stop slideshow'),
128
129 pauseSlideshow: () =>
130 resolve(i18nHelper?.navigation.pause, undefined, 'Pause slideshow'),
131
132 resumeSlideshow: () =>
133 resolve(i18nHelper?.navigation.resume, undefined, 'Resume slideshow'),

Callers 2

TimelineContextProviderFunction · 0.90

Calls 2

resolveFunction · 0.85
itemPositionMethod · 0.80

Tested by

no test coverage detected