From e291f47300453baf109f28462141025146a0fc46 Mon Sep 17 00:00:00 2001 From: martincupela Date: Mon, 9 Mar 2026 16:02:37 +0100 Subject: [PATCH 1/4] feat: align items to the top in poll options --- .../Poll/styling/PollOptionList.scss | 27 ++++++------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/src/components/Poll/styling/PollOptionList.scss b/src/components/Poll/styling/PollOptionList.scss index 60880c8fb..d04df39ac 100644 --- a/src/components/Poll/styling/PollOptionList.scss +++ b/src/components/Poll/styling/PollOptionList.scss @@ -12,18 +12,7 @@ grid-template-columns: minmax(0, auto) 1fr; grid-template-rows: 1fr auto; row-gap: var(--spacing-xs); - - .str-chat__poll-option-data { - grid-column: 2 / 3; - grid-row: 1 / 2; - } - - .str-chat__poll-option__votes-bar { - grid-column: 2 / 3; - grid-row: 2 / 3; - height: 8px; - width: 100%; - } + align-items: start; &.str-chat__poll-option--votable { column-gap: var(--spacing-sm); @@ -36,7 +25,6 @@ .str-chat__checkmark { grid-column: 1; grid-row: span 2; - align-self: center; height: var(--str-chat__poll-checkmark-size); width: var(--str-chat__poll-checkmark-size); border-radius: var(--str-chat__border-radius-circle); @@ -57,19 +45,16 @@ .str-chat__poll-option-data { flex: 1; display: flex; - align-items: center; + align-items: start; gap: var(--spacing-sm); + grid-column: 2 / 3; + grid-row: 1 / 2; p { margin: 0; flex: 1; } - .str-chat__poll-option-voters, - .str-chat__poll-option-vote-count { - align-self: end; - } - .str-chat__poll-option-voters { --str-chat__avatar-size: 1.175rem; display: flex; @@ -82,6 +67,10 @@ } .str-chat__poll-option__votes-bar { + grid-column: 2 / 3; + grid-row: 2 / 3; + height: 8px; + width: 100%; background: linear-gradient( to right, var(--chat-poll-progress-fill-incoming) var(--str-chat__amount-bar-fulfillment), From 9de2c5010c4530aee30609caae15430d31ed4029 Mon Sep 17 00:00:00 2001 From: martincupela Date: Mon, 9 Mar 2026 17:09:20 +0100 Subject: [PATCH 2/4] feat: make the whole body of modal carrying PollOptionWithVotesList scrollable --- .../PollResults/PollOptionWithVotes.tsx | 7 +-- .../PollResults/PollOptionWithVotesList.tsx | 48 +++++++++++++++++++ .../PollActions/PollResults/PollResults.tsx | 11 ++--- .../PollResults/PollVotesPaginatedList.tsx | 34 ------------- src/components/Poll/styling/PollResults.scss | 27 ++++++++--- 5 files changed, 74 insertions(+), 53 deletions(-) create mode 100644 src/components/Poll/PollActions/PollResults/PollOptionWithVotesList.tsx delete mode 100644 src/components/Poll/PollActions/PollResults/PollVotesPaginatedList.tsx diff --git a/src/components/Poll/PollActions/PollResults/PollOptionWithVotes.tsx b/src/components/Poll/PollActions/PollResults/PollOptionWithVotes.tsx index 9dc1a19bc..1cb12d3f2 100644 --- a/src/components/Poll/PollActions/PollResults/PollOptionWithVotes.tsx +++ b/src/components/Poll/PollActions/PollResults/PollOptionWithVotes.tsx @@ -10,7 +10,6 @@ import { import type { PollOption, PollState, PollVote } from 'stream-chat'; import { Button } from '../../../Button'; import clsx from 'clsx'; -import { PollVotesPaginatedList } from './PollVotesPaginatedList'; type PollStateSelectorReturnValue = { latest_votes_by_option: Record; @@ -50,11 +49,7 @@ export const PollOptionWithVotes = ({ })} > - {!votes ? null : isVotesPreview ? ( - - ) : ( - - )} + {!!votes && } {channelCapabilities['query-poll-votes'] && showAllVotes && isVotesPreview && diff --git a/src/components/Poll/PollActions/PollResults/PollOptionWithVotesList.tsx b/src/components/Poll/PollActions/PollResults/PollOptionWithVotesList.tsx new file mode 100644 index 000000000..3ce15f717 --- /dev/null +++ b/src/components/Poll/PollActions/PollResults/PollOptionWithVotesList.tsx @@ -0,0 +1,48 @@ +import React, { useMemo } from 'react'; +import { PollVoteListing } from '../../PollVote'; +import { usePollOptionVotesPagination } from '../../hooks'; +import { LoadingIndicator } from '../../../Loading'; +import { InfiniteScrollPaginator } from '../../../InfiniteScrollPaginator/InfiniteScrollPaginator'; +import type { PollOption, PollOptionVotesQueryParams } from 'stream-chat'; +import { PollOptionWithVotesHeader } from './PollOptionWithVotesHeader'; + +export type PollOptionWithVotesListProps = { + option: PollOption; + optionOrderNumber: number; +}; + +export const PollOptionWithVotesList = ({ + option, + optionOrderNumber, +}: PollOptionWithVotesListProps) => { + const paginationParams = useMemo( + () => ({ filter: { option_id: option.id } }), + [option.id], + ); + const { hasNextPage, loading, loadMore, votes } = usePollOptionVotesPagination({ + paginationParams, + }); + + return ( + +
+
+
+ + + {hasNextPage && ( +
+ {loading && } +
+ )} +
+
+
+
+ // todo: find out how to show errors in paginated lists + // {error && error.message} + ); +}; diff --git a/src/components/Poll/PollActions/PollResults/PollResults.tsx b/src/components/Poll/PollActions/PollResults/PollResults.tsx index 7e98be9f4..a66f77d94 100644 --- a/src/components/Poll/PollActions/PollResults/PollResults.tsx +++ b/src/components/Poll/PollActions/PollResults/PollResults.tsx @@ -11,6 +11,7 @@ import { import type { PollOption, PollState } from 'stream-chat'; import { COUNT_OPTION_VOTES_PREVIEW } from '../../constants'; import { PollQuestion } from '../PollQuestion'; +import { PollOptionWithVotesList } from './PollOptionWithVotesList'; const pollStateSelector = ({ name, @@ -49,12 +50,10 @@ export const PollResults = () => { <> -
- -
+
) : ( diff --git a/src/components/Poll/PollActions/PollResults/PollVotesPaginatedList.tsx b/src/components/Poll/PollActions/PollResults/PollVotesPaginatedList.tsx deleted file mode 100644 index 095d23586..000000000 --- a/src/components/Poll/PollActions/PollResults/PollVotesPaginatedList.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import React, { useMemo } from 'react'; -import { PollVoteListing } from '../../PollVote'; -import { usePollOptionVotesPagination } from '../../hooks'; -import { LoadingIndicator } from '../../../Loading'; -import { InfiniteScrollPaginator } from '../../../InfiniteScrollPaginator/InfiniteScrollPaginator'; -import type { PollOption, PollOptionVotesQueryParams } from 'stream-chat'; - -export type PollOptionPaginatedVotesListProps = { - option: PollOption; -}; - -export const PollVotesPaginatedList = ({ option }: PollOptionPaginatedVotesListProps) => { - const paginationParams = useMemo( - () => ({ filter: { option_id: option.id } }), - [option.id], - ); - const { error, hasNextPage, loading, loadMore, votes } = usePollOptionVotesPagination({ - paginationParams, - }); - - return ( -
- - - {hasNextPage && ( -
- {loading && } -
- )} -
- {error && error.message} -
- ); -}; diff --git a/src/components/Poll/styling/PollResults.scss b/src/components/Poll/styling/PollResults.scss index 9ec69c9c0..70d65dba4 100644 --- a/src/components/Poll/styling/PollResults.scss +++ b/src/components/Poll/styling/PollResults.scss @@ -17,7 +17,7 @@ width: 100%; } - .str-chat__modal__poll-results__option-detail, + .str-chat_poll-option-with-votes-list, .str-chat__modal__poll-results__option-list { display: flex; flex-direction: column; @@ -82,17 +82,12 @@ } } - .str-chat__modal__poll-results__option-detail { + .str-chat_poll-option-with-votes-list { .str-chat__poll-option { padding-bottom: 0; } .str-chat__poll-option__votes-paginated-list { - .str-chat__infinite-scroll-paginator { - max-height: 480px; - scrollbar-width: none; - } - .str-chat__loading-indicator-placeholder { width: 100%; height: calc(var(--str-chat__loading-indicator-size) + (2 * var(--spacing-xxs))); @@ -122,6 +117,24 @@ } } +.str-chat__modal__poll-results.str-chat__modal__poll-results--option-detail { + display: flex; + flex-direction: column; + + .str-chat__modal__poll-results__body { + flex: 1; + min-height: 0; + + .str-chat__infinite-scroll-paginator { + flex: 1; + scrollbar-width: none; + width: 100%; + height: 100%; + padding-bottom: var(--spacing-xl); + } + } +} + .str-chat__modal__poll-results:not(.str-chat__modal__poll-results--option-detail) { .str-chat__modal__poll-results__body { @include utils.scrollable-y; From 1dba5daead0358fe3bc07e305c6de37db10beb78 Mon Sep 17 00:00:00 2001 From: martincupela Date: Mon, 9 Mar 2026 17:47:07 +0100 Subject: [PATCH 3/4] feat: make the whole body of modal carrying PollOptionFullList scrollable --- .../PollResults/PollOptionWithVotesList.tsx | 2 -- .../Poll/styling/PollOptionFullList.scss | 5 +++-- src/components/Poll/styling/PollResults.scss | 18 +++++------------- 3 files changed, 8 insertions(+), 17 deletions(-) diff --git a/src/components/Poll/PollActions/PollResults/PollOptionWithVotesList.tsx b/src/components/Poll/PollActions/PollResults/PollOptionWithVotesList.tsx index 3ce15f717..e31f7fdd2 100644 --- a/src/components/Poll/PollActions/PollResults/PollOptionWithVotesList.tsx +++ b/src/components/Poll/PollActions/PollResults/PollOptionWithVotesList.tsx @@ -42,7 +42,5 @@ export const PollOptionWithVotesList = ({ - // todo: find out how to show errors in paginated lists - // {error && error.message} ); }; diff --git a/src/components/Poll/styling/PollOptionFullList.scss b/src/components/Poll/styling/PollOptionFullList.scss index 481012d9b..bb38e48bf 100644 --- a/src/components/Poll/styling/PollOptionFullList.scss +++ b/src/components/Poll/styling/PollOptionFullList.scss @@ -3,15 +3,16 @@ .str-chat__modal__poll-option-list { .str-chat__modal__poll-option-list__body { @include utils.scrollable-y; + scrollbar-width: none; display: flex; flex-direction: column; gap: var(--spacing-2xl); + padding-bottom: var(--spacing-xl); .str-chat__poll-option-list--full { - @include utils.scrollable-y; gap: var(--spacing-xxs); scrollbar-width: none; - max-height: 380px; + height: 100%; padding: var(--spacing-sm) var(--spacing-xxs); border-radius: var(--radius-lg); background-color: var(--background-core-surface-card); diff --git a/src/components/Poll/styling/PollResults.scss b/src/components/Poll/styling/PollResults.scss index 70d65dba4..bdd6b51b9 100644 --- a/src/components/Poll/styling/PollResults.scss +++ b/src/components/Poll/styling/PollResults.scss @@ -118,20 +118,12 @@ } .str-chat__modal__poll-results.str-chat__modal__poll-results--option-detail { - display: flex; - flex-direction: column; - - .str-chat__modal__poll-results__body { + .str-chat__infinite-scroll-paginator { flex: 1; - min-height: 0; - - .str-chat__infinite-scroll-paginator { - flex: 1; - scrollbar-width: none; - width: 100%; - height: 100%; - padding-bottom: var(--spacing-xl); - } + scrollbar-width: none; + width: 100%; + height: 100%; + padding-bottom: var(--spacing-xl); } } From 276a369223be8423e749f1d91c1b263ef6c641cc Mon Sep 17 00:00:00 2001 From: martincupela Date: Mon, 9 Mar 2026 18:51:53 +0100 Subject: [PATCH 4/4] feat: adjust PollAnswerList and PollResults designs --- src/components/Dialog/styling/Viewer.scss | 4 ++ .../Poll/PollActions/AddCommentPrompt.tsx | 10 ++- .../Poll/PollActions/PollAnswerList.tsx | 56 ++++++++++----- .../PollActions/SuggestPollOptionPrompt.tsx | 8 ++- src/components/Poll/PollVote.tsx | 4 +- .../Poll/styling/PollAnswerList.scss | 68 +++++++++++++------ .../Poll/styling/PollCreationDialog.scss | 7 -- src/components/Poll/styling/PollResults.scss | 6 ++ src/components/Poll/styling/PollVote.scss | 2 +- src/i18n/de.json | 1 + src/i18n/en.json | 1 + src/i18n/es.json | 1 + src/i18n/fr.json | 1 + src/i18n/hi.json | 1 + src/i18n/it.json | 1 + src/i18n/ja.json | 1 + src/i18n/ko.json | 1 + src/i18n/nl.json | 1 + src/i18n/pt.json | 1 + src/i18n/ru.json | 1 + src/i18n/tr.json | 1 + src/styling/_global-theme-variables.scss | 2 +- 22 files changed, 128 insertions(+), 51 deletions(-) diff --git a/src/components/Dialog/styling/Viewer.scss b/src/components/Dialog/styling/Viewer.scss index 51ce22b59..c9b421664 100644 --- a/src/components/Dialog/styling/Viewer.scss +++ b/src/components/Dialog/styling/Viewer.scss @@ -6,6 +6,8 @@ max-width: 520px; height: 100%; max-height: 640px; + display: flex; + flex-direction: column; .str-chat__viewer__header { display: flex; @@ -48,6 +50,8 @@ .str-chat__viewer__body { padding: 0 var(--spacing-xl); + flex: 1; + min-height: 0; .str-chat__viewer__title { margin-bottom: 1rem; diff --git a/src/components/Poll/PollActions/AddCommentPrompt.tsx b/src/components/Poll/PollActions/AddCommentPrompt.tsx index 707d71bb1..08022c5ee 100644 --- a/src/components/Poll/PollActions/AddCommentPrompt.tsx +++ b/src/components/Poll/PollActions/AddCommentPrompt.tsx @@ -1,4 +1,4 @@ -import React, { useCallback, useMemo } from 'react'; +import React, { useCallback, useEffect, useMemo, useState } from 'react'; import { useStateStore } from '../../../store'; import { useModalContext, usePollContext, useTranslationContext } from '../../../context'; import type { PollAnswer, PollState } from 'stream-chat'; @@ -20,6 +20,7 @@ export const AddCommentPrompt = ({ messageId }: AddCommentPromptProps) => { const { close } = useModalContext(); const { poll } = usePollContext(); const { ownAnswer } = useStateStore(poll.state, pollStateSelector); + const [input, setInput] = useState(null); const initialComment = ownAnswer?.answer_text ?? ''; const initialValue = useMemo(() => ({ comment: initialComment }), [initialComment]); @@ -50,6 +51,10 @@ export const AddCommentPrompt = ({ messageId }: AddCommentPromptProps) => { validators, }); + useEffect(() => { + input?.focus(); + }, [input]); + const title = ownAnswer ? t('Update your comment') : t('Add a comment'); const submitDisabled = !value.comment?.trim() || value.comment === ownAnswer?.answer_text; @@ -65,6 +70,7 @@ export const AddCommentPrompt = ({ messageId }: AddCommentPromptProps) => { id='comment' name='comment' onChange={(e) => setFieldValue('comment', e.target.value)} + ref={setInput} required title={title} type='text' @@ -85,7 +91,7 @@ export const AddCommentPrompt = ({ messageId }: AddCommentPromptProps) => { disabled={Object.keys(fieldErrors).length > 0 || submitDisabled} type='submit' > - {t('Send')} + {initialComment ? t('Update') : t('Send')} diff --git a/src/components/Poll/PollActions/PollAnswerList.tsx b/src/components/Poll/PollActions/PollAnswerList.tsx index 3a09728e7..699342c20 100644 --- a/src/components/Poll/PollActions/PollAnswerList.tsx +++ b/src/components/Poll/PollActions/PollAnswerList.tsx @@ -1,11 +1,17 @@ import React from 'react'; +import { Button } from '../../Button'; import { Viewer } from '../../Dialog'; import { PollVote } from '../PollVote'; import { usePollAnswerPagination } from '../hooks'; import { InfiniteScrollPaginator } from '../../InfiniteScrollPaginator/InfiniteScrollPaginator'; import { LoadingIndicator } from '../../Loading'; import { useStateStore } from '../../../store'; -import { useModalContext, usePollContext, useTranslationContext } from '../../../context'; +import { + useChatContext, + useModalContext, + usePollContext, + useTranslationContext, +} from '../../../context'; import type { PollAnswer, PollState } from 'stream-chat'; @@ -23,10 +29,11 @@ export type PollAnswerListProps = { }; export const PollAnswerList = ({ onUpdateOwnAnswerClick }: PollAnswerListProps) => { + const { client } = useChatContext(); const { t } = useTranslationContext(); const { poll } = usePollContext(); const { close } = useModalContext(); - const { is_closed, ownAnswer } = useStateStore(poll.state, pollStateSelector); + const { is_closed } = useStateStore(poll.state, pollStateSelector); const { answers, error, hasNextPage, loading, loadMore } = usePollAnswerPagination(); @@ -38,10 +45,25 @@ export const PollAnswerList = ({ onUpdateOwnAnswerClick }: PollAnswerListProps) {answers.map((answer) => (
- {answer.answer_text && ( -

{answer.answer_text}

+
+ {answer.answer_text && ( +

{answer.answer_text}

+ )} + +
+ {!is_closed && answer.user?.id === client.user?.id && ( +
+ +
)} -
))} @@ -54,18 +76,18 @@ export const PollAnswerList = ({ onUpdateOwnAnswerClick }: PollAnswerListProps) {error?.message &&
{error?.message}
} - - {answers.length > 0 && !is_closed && ( - - - {ownAnswer ? t('Update your comment') : t('Add a comment')} - - - )} - + {/**/} + {/* {answers.length > 0 && !is_closed && (*/} + {/* */} + {/* */} + {/* {ownAnswer ? t('Update your comment') : t('Add a comment')}*/} + {/* */} + {/* */} + {/* )}*/} + {/**/} ); }; diff --git a/src/components/Poll/PollActions/SuggestPollOptionPrompt.tsx b/src/components/Poll/PollActions/SuggestPollOptionPrompt.tsx index 9dfee6665..ebf9dd4a3 100644 --- a/src/components/Poll/PollActions/SuggestPollOptionPrompt.tsx +++ b/src/components/Poll/PollActions/SuggestPollOptionPrompt.tsx @@ -1,4 +1,4 @@ -import React, { useCallback, useMemo } from 'react'; +import React, { useCallback, useEffect, useMemo, useState } from 'react'; import { useChatContext, useModalContext, @@ -26,6 +26,7 @@ export const SuggestPollOptionPrompt = ({ messageId }: SuggestPollOptionFormProp const { poll } = usePollContext(); const { close } = useModalContext(); const { options } = useStateStore(poll.state, pollStateSelector); + const [input, setInput] = useState(null); const initialValue = useMemo(() => ({ optionText: '' }), []); const validators = useMemo( @@ -64,6 +65,10 @@ export const SuggestPollOptionPrompt = ({ messageId }: SuggestPollOptionFormProp validators, }); + useEffect(() => { + input?.focus(); + }, [input]); + const submitDisabled = !value.optionText?.trim(); return ( @@ -77,6 +82,7 @@ export const SuggestPollOptionPrompt = ({ messageId }: SuggestPollOptionFormProp id='optionText' name='optionText' onChange={(e) => setFieldValue('optionText', e.target.value)} + ref={setInput} required title={t('Suggest an option')} type='text' diff --git a/src/components/Poll/PollVote.tsx b/src/components/Poll/PollVote.tsx index 04ac67f58..2182b9e02 100644 --- a/src/components/Poll/PollVote.tsx +++ b/src/components/Poll/PollVote.tsx @@ -36,7 +36,9 @@ type PollVoteProps = { vote: PollVoteType; }; -const PollVoteAuthor = ({ vote }: PollVoteProps) => { +type PollVoteAuthor = PollVoteProps; + +const PollVoteAuthor = ({ vote }: PollVoteAuthor) => { const { t } = useTranslationContext(); const { client } = useChatContext(); const { handleEnter, handleLeave, tooltipVisible } = diff --git a/src/components/Poll/styling/PollAnswerList.scss b/src/components/Poll/styling/PollAnswerList.scss index bd75904fa..2dd9c031a 100644 --- a/src/components/Poll/styling/PollAnswerList.scss +++ b/src/components/Poll/styling/PollAnswerList.scss @@ -1,11 +1,17 @@ .str-chat__modal__poll-answer-list { .str-chat__poll-answer-list { - border-radius: var(--radius-lg); - background: var(--background-core-surface-card); + height: 100%; .str-chat__infinite-scroll-paginator { scrollbar-width: none; - max-height: 480px; + height: 100%; + + .str-chat__infinite-scroll-paginator__content { + display: flex; + flex-direction: column; + gap: var(--spacing-md); + padding-bottom: var(--spacing-xl); + } } .str-chat__loading-indicator-placeholder { @@ -16,28 +22,48 @@ } .str-chat__poll-answer { - display: flex; - padding: var(--spacing-md); - flex-direction: column; - align-items: flex-start; - gap: var(--spacing-xxs); - align-self: stretch; - - p { - margin: 0; - } + display: flex; + flex-direction: column; + align-items: flex-start; + gap: var(--spacing-xxs); + align-self: stretch; + border-radius: var(--radius-lg); + background: var(--background-core-surface-card); + + .str-chat__poll-answer__data { + display: flex; + flex-direction: column; + align-items: flex-start; + gap: var(--spacing-xs); + align-self: stretch; + padding: var(--spacing-md); - .str-chat__poll-answer__text { - font: var(--str-chat__heading-sm-text); + .str-chat__avatar { + height: var(--spacing-xl); + width: var(--spacing-xl); + } + + p { + margin: 0; + } + + .str-chat__poll-answer__text { + font: var(--str-chat__body-default-text); + } + + .str-chat__poll-vote { + padding-inline: var(--spacing-none); + padding-block: 0; + } } - .str-chat__poll-vote { - padding-inline: var(--spacing-none); + .str-chat__poll-vote__update-vote-button-container { + display: flex; + justify-content: center; + width: 100%; + padding: var(--spacing-xs) var(--spacing-md); + border-top: 1px solid var(--border-core-default); } } } - - .str-chat__viewer__footer { - justify-content: center; - } } diff --git a/src/components/Poll/styling/PollCreationDialog.scss b/src/components/Poll/styling/PollCreationDialog.scss index 0aa37bcd0..7f0793004 100644 --- a/src/components/Poll/styling/PollCreationDialog.scss +++ b/src/components/Poll/styling/PollCreationDialog.scss @@ -53,10 +53,3 @@ } } } - -@media only screen and (max-device-width: 768px) { - .str-chat__create-poll-modal, - .str-chat__poll-answer-list-modal, - .str-chat__poll-results-modal { - } -} diff --git a/src/components/Poll/styling/PollResults.scss b/src/components/Poll/styling/PollResults.scss index bdd6b51b9..df7d8fd27 100644 --- a/src/components/Poll/styling/PollResults.scss +++ b/src/components/Poll/styling/PollResults.scss @@ -66,6 +66,11 @@ align-items: flex-start; align-self: stretch; padding: var(--spacing-xs) var(--spacing-none); + + .str-chat__avatar { + height: var(--spacing-2xl); + width: var(--spacing-2xl); + } } .str-chat__poll-option__show-all-votes-button-container { @@ -111,6 +116,7 @@ display: flex; gap: var(--spacing-xs); align-items: center; + font: var(--str-chat__caption-emphasis-text); svg { } diff --git a/src/components/Poll/styling/PollVote.scss b/src/components/Poll/styling/PollVote.scss index 90f132d52..c8303c087 100644 --- a/src/components/Poll/styling/PollVote.scss +++ b/src/components/Poll/styling/PollVote.scss @@ -4,8 +4,8 @@ align-items: center; gap: var(--spacing-none, 0); align-self: stretch; - min-height: 40px; width: 100%; + font: var(--str-chat__caption-default-text); .str-chat__poll-vote__author { flex: 1; diff --git a/src/i18n/de.json b/src/i18n/de.json index 22b53489c..a391a74fe 100644 --- a/src/i18n/de.json +++ b/src/i18n/de.json @@ -404,6 +404,7 @@ "Unread messages": "Ungelesene Nachrichten", "Unsupported attachment": "Nicht unterstützter Anhang", "unsupported file type": "Nicht unterstützter Dateityp", + "Update": "Aktualisieren", "Update your comment": "Ihren Kommentar aktualisieren", "Upload blocked": "Upload blockiert", "Upload error": "Upload-Fehler", diff --git a/src/i18n/en.json b/src/i18n/en.json index 56832a896..0d2e736a5 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -404,6 +404,7 @@ "Unread messages": "Unread messages", "Unsupported attachment": "Unsupported attachment", "unsupported file type": "unsupported file type", + "Update": "Update", "Update your comment": "Update your comment", "Upload blocked": "Upload blocked", "Upload error": "Upload error", diff --git a/src/i18n/es.json b/src/i18n/es.json index 6a238b408..12f8a8171 100644 --- a/src/i18n/es.json +++ b/src/i18n/es.json @@ -419,6 +419,7 @@ "Unread messages": "Mensajes no leídos", "Unsupported attachment": "Adjunto no compatible", "unsupported file type": "tipo de archivo no compatible", + "Update": "Actualizar", "Update your comment": "Actualizar tu comentario", "Upload blocked": "Carga bloqueada", "Upload error": "Error de carga", diff --git a/src/i18n/fr.json b/src/i18n/fr.json index 9a4ed6269..5db7711b9 100644 --- a/src/i18n/fr.json +++ b/src/i18n/fr.json @@ -419,6 +419,7 @@ "Unread messages": "Messages non lus", "Unsupported attachment": "Pièce jointe non prise en charge", "unsupported file type": "type de fichier non pris en charge", + "Update": "Mettre à jour", "Update your comment": "Mettre à jour votre commentaire", "Upload blocked": "Téléversement bloqué", "Upload error": "Erreur de téléversement", diff --git a/src/i18n/hi.json b/src/i18n/hi.json index ea2ee4022..87c30d4cd 100644 --- a/src/i18n/hi.json +++ b/src/i18n/hi.json @@ -405,6 +405,7 @@ "Unread messages": "अपठित संदेश", "Unsupported attachment": "असमर्थित अटैचमेंट", "unsupported file type": "असमर्थित फ़ाइल प्रकार", + "Update": "अपडेट करें", "Update your comment": "अपने टिप्पणी को अपडेट करें", "Upload blocked": "अपलोड अवरुद्ध", "Upload error": "अपलोड त्रुटि", diff --git a/src/i18n/it.json b/src/i18n/it.json index b5eb1182c..d84e06cf8 100644 --- a/src/i18n/it.json +++ b/src/i18n/it.json @@ -419,6 +419,7 @@ "Unread messages": "Messaggi non letti", "Unsupported attachment": "Allegato non supportato", "unsupported file type": "tipo di file non supportato", + "Update": "Aggiorna", "Update your comment": "Aggiorna il tuo commento", "Upload blocked": "Caricamento bloccato", "Upload error": "Errore di caricamento", diff --git a/src/i18n/ja.json b/src/i18n/ja.json index 4de28c046..6ee3da900 100644 --- a/src/i18n/ja.json +++ b/src/i18n/ja.json @@ -399,6 +399,7 @@ "Unread messages": "未読メッセージ", "Unsupported attachment": "サポートされていない添付ファイル", "unsupported file type": "サポートされていないファイル形式", + "Update": "更新", "Update your comment": "コメントを更新", "Upload blocked": "アップロードがブロックされました", "Upload error": "アップロードエラー", diff --git a/src/i18n/ko.json b/src/i18n/ko.json index 01cd78ffc..4db0921be 100644 --- a/src/i18n/ko.json +++ b/src/i18n/ko.json @@ -399,6 +399,7 @@ "Unread messages": "읽지 않은 메시지", "Unsupported attachment": "지원되지 않는 첨부 파일", "unsupported file type": "지원되지 않는 파일 형식", + "Update": "업데이트", "Update your comment": "댓글 업데이트", "Upload blocked": "업로드가 차단되었습니다", "Upload error": "업로드 오류", diff --git a/src/i18n/nl.json b/src/i18n/nl.json index 07d5b4ce4..d11cf4952 100644 --- a/src/i18n/nl.json +++ b/src/i18n/nl.json @@ -406,6 +406,7 @@ "Unread messages": "Ongelezen berichten", "Unsupported attachment": "Niet-ondersteunde bijlage", "unsupported file type": "niet-ondersteund bestandstype", + "Update": "Bijwerken", "Update your comment": "Werk je opmerking bij", "Upload blocked": "Upload geblokkeerd", "Upload error": "Uploadfout", diff --git a/src/i18n/pt.json b/src/i18n/pt.json index c335d1b09..5793f3e65 100644 --- a/src/i18n/pt.json +++ b/src/i18n/pt.json @@ -419,6 +419,7 @@ "Unread messages": "Mensagens não lidas", "Unsupported attachment": "Anexo não suportado", "unsupported file type": "tipo de arquivo não suportado", + "Update": "Atualizar", "Update your comment": "Atualizar seu comentário", "Upload blocked": "Envio bloqueado", "Upload error": "Erro no envio", diff --git a/src/i18n/ru.json b/src/i18n/ru.json index d1adfe51c..891ed56b8 100644 --- a/src/i18n/ru.json +++ b/src/i18n/ru.json @@ -437,6 +437,7 @@ "Unread messages": "Непрочитанные сообщения", "Unsupported attachment": "Неподдерживаемое вложение", "unsupported file type": "неподдерживаемый тип файла", + "Update": "Обновить", "Update your comment": "Обновите ваш комментарий", "Upload blocked": "Загрузка заблокирована", "Upload error": "Ошибка загрузки", diff --git a/src/i18n/tr.json b/src/i18n/tr.json index b50176220..9d22ab412 100644 --- a/src/i18n/tr.json +++ b/src/i18n/tr.json @@ -404,6 +404,7 @@ "Unread messages": "Okunmamış mesajlar", "Unsupported attachment": "Desteklenmeyen ek", "unsupported file type": "desteklenmeyen dosya türü", + "Update": "Güncelle", "Update your comment": "Yorumunuzu güncelleyin", "Upload blocked": "Yükleme engellendi", "Upload error": "Yükleme hatası", diff --git a/src/styling/_global-theme-variables.scss b/src/styling/_global-theme-variables.scss index bda7f9971..73fbab07c 100644 --- a/src/styling/_global-theme-variables.scss +++ b/src/styling/_global-theme-variables.scss @@ -40,7 +40,7 @@ --str-chat__metadata-emphasis-text: normal var(--typography-font-weight-semi-bold) var(--typography-font-size-xs) / var(--typography-line-height-tight) var(--str-chat__font-family); - + --str-chat__metadata-default-text: normal var(--typography-font-weight-regular) var(--typography-font-size-xs) / var(--typography-line-height-tight) var(--str-chat__font-family);