diff options
| author | David Hill <[email protected]> | 2026-01-22 09:39:36 +0000 |
|---|---|---|
| committer | David Hill <[email protected]> | 2026-01-22 09:41:28 +0000 |
| commit | cf1fc02d27fa6d638a78f3a8f0cfd3ea8b1932e5 (patch) | |
| tree | d786c568ab7ed8eedb77e43366bddcc90179322f /packages/app/src | |
| parent | ba2e35e29c5fd48a112ae566e9e0dbd4562c491a (diff) | |
| download | opencode-cf1fc02d27fa6d638a78f3a8f0cfd3ea8b1932e5.tar.gz opencode-cf1fc02d27fa6d638a78f3a8f0cfd3ea8b1932e5.zip | |
update jump to latest button with circular design and animation
- add arrow-down-to-line icon
- circular 32px button centered above prompt input
- fade/scale/translate animation on show/hide
- fix duplicate language.ru keys in i18n files
Diffstat (limited to 'packages/app/src')
| -rw-r--r-- | packages/app/src/i18n/de.ts | 1 | ||||
| -rw-r--r-- | packages/app/src/i18n/es.ts | 1 | ||||
| -rw-r--r-- | packages/app/src/i18n/fr.ts | 1 | ||||
| -rw-r--r-- | packages/app/src/i18n/ja.ts | 1 | ||||
| -rw-r--r-- | packages/app/src/i18n/ko.ts | 1 | ||||
| -rw-r--r-- | packages/app/src/i18n/zh.ts | 1 | ||||
| -rw-r--r-- | packages/app/src/pages/session.tsx | 35 |
7 files changed, 18 insertions, 23 deletions
diff --git a/packages/app/src/i18n/de.ts b/packages/app/src/i18n/de.ts index 244637b04..3098e33b7 100644 --- a/packages/app/src/i18n/de.ts +++ b/packages/app/src/i18n/de.ts @@ -284,7 +284,6 @@ export const dict = { "language.da": "Dänisch", "language.ru": "Russisch", "language.pl": "Polnisch", - "language.ru": "Russisch", "language.ar": "Arabisch", "toast.language.title": "Sprache", diff --git a/packages/app/src/i18n/es.ts b/packages/app/src/i18n/es.ts index 2bc850d16..ef07642a4 100644 --- a/packages/app/src/i18n/es.ts +++ b/packages/app/src/i18n/es.ts @@ -279,7 +279,6 @@ export const dict = { "language.da": "Danés", "language.ru": "Ruso", "language.pl": "Polaco", - "language.ru": "Ruso", "language.ar": "Árabe", "toast.language.title": "Idioma", diff --git a/packages/app/src/i18n/fr.ts b/packages/app/src/i18n/fr.ts index 2438cc930..0e72b4e8b 100644 --- a/packages/app/src/i18n/fr.ts +++ b/packages/app/src/i18n/fr.ts @@ -279,7 +279,6 @@ export const dict = { "language.da": "Danois", "language.ru": "Russe", "language.pl": "Polonais", - "language.ru": "Russe", "language.ar": "Arabe", "toast.language.title": "Langue", diff --git a/packages/app/src/i18n/ja.ts b/packages/app/src/i18n/ja.ts index b6e9857f1..fa977cc0d 100644 --- a/packages/app/src/i18n/ja.ts +++ b/packages/app/src/i18n/ja.ts @@ -277,7 +277,6 @@ export const dict = { "language.da": "デンマーク語", "language.ru": "ロシア語", "language.pl": "ポーランド語", - "language.ru": "ロシア語", "language.ar": "アラビア語", "toast.language.title": "言語", diff --git a/packages/app/src/i18n/ko.ts b/packages/app/src/i18n/ko.ts index dbc0f89a0..0b88700dc 100644 --- a/packages/app/src/i18n/ko.ts +++ b/packages/app/src/i18n/ko.ts @@ -281,7 +281,6 @@ export const dict = { "language.da": "덴마크어", "language.ru": "러시아어", "language.pl": "폴란드어", - "language.ru": "러시아어", "language.ar": "아랍어", "toast.language.title": "언어", diff --git a/packages/app/src/i18n/zh.ts b/packages/app/src/i18n/zh.ts index 0993eb81a..a3b2d2bb4 100644 --- a/packages/app/src/i18n/zh.ts +++ b/packages/app/src/i18n/zh.ts @@ -277,7 +277,6 @@ export const dict = { "language.da": "丹麦语", "language.ru": "俄语", "language.pl": "波兰语", - "language.ru": "俄语", "language.ar": "阿拉伯语", "toast.language.title": "语言", diff --git a/packages/app/src/pages/session.tsx b/packages/app/src/pages/session.tsx index 953634ca8..5e4eeafd5 100644 --- a/packages/app/src/pages/session.tsx +++ b/packages/app/src/pages/session.tsx @@ -1360,23 +1360,24 @@ export default function Page() { } > <div class="relative w-full h-full min-w-0"> - <Show when={autoScroll.userScrolled()}> - <div class="absolute right-4 md:right-6 bottom-[calc(var(--prompt-height,8rem)+16px)] z-[60] pointer-events-none"> - <Button - variant="secondary" - size="small" - icon="chevron-down" - class="pointer-events-auto shadow-sm" - onClick={() => { - setStore("messageId", undefined) - autoScroll.forceScrollToBottom() - window.history.replaceState(null, "", window.location.href.replace(/#.*$/, "")) - }} - > - {language.t("session.messages.jumpToLatest")} - </Button> - </div> - </Show> + <div + class="absolute left-1/2 -translate-x-1/2 bottom-[calc(var(--prompt-height,8rem)+32px)] z-[60] pointer-events-none transition-all duration-200 ease-out" + classList={{ + "opacity-100 translate-y-0 scale-100": autoScroll.userScrolled(), + "opacity-0 translate-y-2 scale-95 pointer-events-none": !autoScroll.userScrolled(), + }} + > + <button + class="pointer-events-auto size-8 flex items-center justify-center rounded-full bg-background-base border border-border-base shadow-sm text-text-base hover:bg-background-stronger transition-colors" + onClick={() => { + setStore("messageId", undefined) + autoScroll.forceScrollToBottom() + window.history.replaceState(null, "", window.location.href.replace(/#.*$/, "")) + }} + > + <Icon name="arrow-down-to-line" /> + </button> + </div> <div ref={setScrollRef} onScroll={(e) => { |
