feat: add temporary sidebar share opinion prompt

Adds a dialog with call booking and survey actions for user feedback
Shows a one-time sidebar toast prompting users to share what’s useful or missing
Adds localized copy for the new feedback entry points
This commit is contained in:
Bohdan Triapitsyn
2026-07-06 00:37:24 +03:00
parent a6edc7baee
commit 086982c1b3
14 changed files with 188 additions and 1 deletions
+7
View File
@@ -22,6 +22,13 @@ export const dict = {
'pwa.installPrompt.dismiss': 'Dismiss',
'pwa.installPrompt.started': 'Install started',
'pwa.installPrompt.installed': 'OpenChamber installed',
'shareOpinion.actions.shareOpinion': 'Share opinion',
'shareOpinion.actions.bookCall': 'Book a call',
'shareOpinion.actions.shortSurvey': 'Short survey',
'shareOpinion.dialog.title': 'Share your opinion',
'shareOpinion.toast.title': 'Help shape OpenChamber',
'shareOpinion.toast.description': 'Share what is useful, confusing, or missing to help shape what comes next.',
'sessions.sidebar.footer.actions.shareOpinion': 'Share opinion',
'layout.mainTab.chat': 'Chat',
'layout.mainTab.plan': 'Plan',
'layout.mainTab.diff': 'Diff',
+7
View File
@@ -23,6 +23,13 @@ export const dict: Record<I18nKey, string> = {
"pwa.installPrompt.dismiss": "Descartar",
"pwa.installPrompt.started": "Instalación iniciada",
"pwa.installPrompt.installed": "OpenChamber se instaló",
"shareOpinion.actions.shareOpinion": "Compartir opinión",
"shareOpinion.actions.bookCall": "Reservar llamada",
"shareOpinion.actions.shortSurvey": "Encuesta breve",
"shareOpinion.dialog.title": "Comparte tu opinión",
"shareOpinion.toast.title": "Ayuda a dar forma a OpenChamber",
"shareOpinion.toast.description": "Cuenta qué es útil, confuso o falta para ayudar a definir lo que viene después.",
"sessions.sidebar.footer.actions.shareOpinion": "Compartir opinión",
"layout.mainTab.chat": "Chat",
"layout.mainTab.plan": "Plan",
"layout.mainTab.diff": "Diff",
+7
View File
@@ -22,6 +22,13 @@ export const dict = {
'pwa.installPrompt.dismiss': 'Ignorer',
'pwa.installPrompt.started': 'Installation démarrée',
'pwa.installPrompt.installed': 'OpenChamber installé',
'shareOpinion.actions.shareOpinion': 'Donner son avis',
'shareOpinion.actions.bookCall': 'Réserver un appel',
'shareOpinion.actions.shortSurvey': 'Court sondage',
'shareOpinion.dialog.title': 'Donnez votre avis',
'shareOpinion.toast.title': 'Aidez à façonner OpenChamber',
'shareOpinion.toast.description': 'Dites ce qui est utile, confus ou manquant pour aider à définir la suite.',
'sessions.sidebar.footer.actions.shareOpinion': 'Donner son avis',
'layout.mainTab.chat': 'Chat',
'layout.mainTab.plan': 'Plan',
'layout.mainTab.diff': 'Diff',
+7
View File
@@ -23,6 +23,13 @@ export const dict: Record<I18nKey, string> = {
'pwa.installPrompt.dismiss': '閉じる',
'pwa.installPrompt.started': 'インストールを開始しました',
'pwa.installPrompt.installed': 'OpenChamberをインストールしました',
'shareOpinion.actions.shareOpinion': '意見を共有',
'shareOpinion.actions.bookCall': '通話を予約',
'shareOpinion.actions.shortSurvey': '短いアンケート',
'shareOpinion.dialog.title': 'ご意見をお聞かせください',
'shareOpinion.toast.title': 'OpenChamber の次を一緒に作る',
'shareOpinion.toast.description': '便利な点、分かりにくい点、足りない点を教えて、次の方向づくりに参加してください。',
'sessions.sidebar.footer.actions.shareOpinion': '意見を共有',
'layout.mainTab.chat': 'チャット',
'layout.mainTab.plan': '計画',
'layout.mainTab.diff': '差分',
+7
View File
@@ -23,6 +23,13 @@ export const dict: Record<I18nKey, string> = {
'pwa.installPrompt.dismiss': '닫기',
'pwa.installPrompt.started': '설치가 시작되었습니다',
'pwa.installPrompt.installed': 'OpenChamber가 설치되었습니다',
'shareOpinion.actions.shareOpinion': '의견 공유',
'shareOpinion.actions.bookCall': '통화 예약',
'shareOpinion.actions.shortSurvey': '짧은 설문',
'shareOpinion.dialog.title': '의견을 공유해 주세요',
'shareOpinion.toast.title': 'OpenChamber의 방향을 함께 만들어 주세요',
'shareOpinion.toast.description': '유용한 점, 혼란스러운 점, 부족한 점을 알려 주셔서 다음 방향을 함께 만들어 주세요.',
'sessions.sidebar.footer.actions.shareOpinion': '의견 공유',
'layout.mainTab.chat': '채팅',
'layout.mainTab.plan': '계획',
'layout.mainTab.diff': '변경사항',
+7
View File
@@ -24,6 +24,13 @@ export const dict: Record<I18nKey, string> = {
'pwa.installPrompt.dismiss': 'Odrzuć',
'pwa.installPrompt.started': 'Instalacja rozpoczęta',
'pwa.installPrompt.installed': 'OpenChamber został zainstalowany',
'shareOpinion.actions.shareOpinion': 'Podziel się opinią',
'shareOpinion.actions.bookCall': 'Umów rozmowę',
'shareOpinion.actions.shortSurvey': 'Krótka ankieta',
'shareOpinion.dialog.title': 'Podziel się opinią',
'shareOpinion.toast.title': 'Pomóż kształtować OpenChamber',
'shareOpinion.toast.description': 'Powiedz, co jest przydatne, mylące albo czego brakuje, aby pomóc kształtować kolejne kroki.',
'sessions.sidebar.footer.actions.shareOpinion': 'Podziel się opinią',
'layout.mainTab.chat': 'Czat',
'layout.mainTab.plan': 'Plan',
'layout.mainTab.diff': 'Różnice',
@@ -23,6 +23,13 @@ export const dict: Record<I18nKey, string> = {
"pwa.installPrompt.dismiss": "Dispensar",
"pwa.installPrompt.started": "Instalação iniciada",
"pwa.installPrompt.installed": "OpenChamber instalado",
"shareOpinion.actions.shareOpinion": "Compartilhar opinião",
"shareOpinion.actions.bookCall": "Agendar chamada",
"shareOpinion.actions.shortSurvey": "Pesquisa breve",
"shareOpinion.dialog.title": "Compartilhe sua opinião",
"shareOpinion.toast.title": "Ajude a moldar o OpenChamber",
"shareOpinion.toast.description": "Conte o que é útil, confuso ou está faltando para ajudar a definir os próximos passos.",
"sessions.sidebar.footer.actions.shareOpinion": "Compartilhar opinião",
"layout.mainTab.chat": "Chat",
"layout.mainTab.plan": "Plano",
"layout.mainTab.diff": "Diff",
+7
View File
@@ -23,6 +23,13 @@ export const dict: Record<I18nKey, string> = {
"pwa.installPrompt.dismiss": "Сховати",
"pwa.installPrompt.started": "Установлення розпочато",
"pwa.installPrompt.installed": "OpenChamber встановлено",
"shareOpinion.actions.shareOpinion": "Поділитися думкою",
"shareOpinion.actions.bookCall": "Забронювати дзвінок",
"shareOpinion.actions.shortSurvey": "Коротке опитування",
"shareOpinion.dialog.title": "Поділіться своєю думкою",
"shareOpinion.toast.title": "Допоможіть сформувати OpenChamber",
"shareOpinion.toast.description": "Розкажіть, що корисне, незрозуміле чи відсутнє, щоб допомогти сформувати наступні кроки.",
"sessions.sidebar.footer.actions.shareOpinion": "Поділитися думкою",
"layout.mainTab.chat": "Чат",
"layout.mainTab.plan": "План",
"layout.mainTab.diff": "Diff",
@@ -23,6 +23,13 @@ export const dict: Record<I18nKey, string> = {
'pwa.installPrompt.dismiss': '忽略',
'pwa.installPrompt.started': '已开始安装',
'pwa.installPrompt.installed': 'OpenChamber 已安装',
'shareOpinion.actions.shareOpinion': '分享意见',
'shareOpinion.actions.bookCall': '预约通话',
'shareOpinion.actions.shortSurvey': '简短问卷',
'shareOpinion.dialog.title': '分享你的意见',
'shareOpinion.toast.title': '帮助塑造 OpenChamber',
'shareOpinion.toast.description': '告诉我们哪些有用、令人困惑或缺失,帮助塑造下一步。',
'sessions.sidebar.footer.actions.shareOpinion': '分享意见',
'layout.mainTab.chat': '聊天',
'layout.mainTab.plan': '计划',
'layout.mainTab.diff': '差异',
@@ -23,6 +23,13 @@ export const dict: Record<I18nKey, string> = {
'pwa.installPrompt.dismiss': '忽略',
'pwa.installPrompt.started': '已開始安裝',
'pwa.installPrompt.installed': 'OpenChamber 已安裝',
'shareOpinion.actions.shareOpinion': '分享意見',
'shareOpinion.actions.bookCall': '預約通話',
'shareOpinion.actions.shortSurvey': '簡短問卷',
'shareOpinion.dialog.title': '分享你的意見',
'shareOpinion.toast.title': '協助塑造 OpenChamber',
'shareOpinion.toast.description': '告訴我們哪些有用、令人困惑或缺少什麼,協助塑造下一步。',
'sessions.sidebar.footer.actions.shareOpinion': '分享意見',
'layout.mainTab.chat': '聊天',
'layout.mainTab.plan': '計畫',
'layout.mainTab.diff': '差異',