🐛 Fix several bugs (#8604)

* 🐛 Fix console warning

* ♻️ Use DS buttons and remove deprecated CSS

* 🐛 Fix copy on update library message

* 🐛 Fix id prop on switch component

* 🐛 Fix tooltip shown after tab change
This commit is contained in:
Eva Marco 2026-03-18 12:52:58 +01:00 committed by GitHub
parent 04a3e236fe
commit df8194acf5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
32 changed files with 144 additions and 240 deletions

View File

@ -35,7 +35,11 @@
- Fix Alt/Option to draw shapes from center point (by @offreal) [Github #8361](https://github.com/penpot/penpot/pull/8361)
- Add token name on broken token pill on sidebar [Taiga #13527](https://tree.taiga.io/project/penpot/issue/13527)
- Fix collapsible sidebar property titles not toggling on click [Github #5168](https://github.com/penpot/penpot/issues/5168)
- Fix `penpot.openPage()` plugin API not navigating in the same tab; change default to same-tab navigation and allow passing a UUID string instead of a Page object [Github #8520](https://github.com/penpot/penpot/issues/8520)
- Fix scroll on library modal [Taiga #13639](https://tree.taiga.io/project/penpot/issue/13639)
- Update copy on penpot update message [Taiga #12924](https://tree.taiga.io/project/penpot/issue/12924)
- Fix id prop on switch component [Taiga #13534](https://tree.taiga.io/project/penpot/issue/13534)
- Fix tooltip shown on tab change [Taiga #13627](https://tree.taiga.io/project/penpot/issue/13627)
## 2.14.0 (Unreleased)

View File

@ -16,7 +16,6 @@
(def ^:private schema:switch
[:map
[:id {:optional true} :string]
[:class {:optional true} :string]
[:label {:optional true} [:maybe :string]]
[:aria-label {:optional true} [:maybe :string]]
@ -26,10 +25,12 @@
(mf/defc switch*
{::mf/schema schema:switch}
[{:keys [id class label aria-label default-checked on-change disabled] :rest props} ref]
[{:keys [class label aria-label default-checked on-change disabled] :rest props} ref]
(let [checked* (mf/use-state default-checked)
checked? (deref checked*)
id (mf/use-id)
disabled? (d/nilv disabled false)
has-label? (not (str/blank? label))

View File

@ -185,17 +185,18 @@
(mf/use-fn
(mf/deps tooltip-id delay)
(fn [_]
(let [trigger-el (mf/ref-val trigger-ref)]
(clear-schedule schedule-ref)
(add-schedule schedule-ref (d/nilv delay 300)
(fn []
(when-let [active @active-tooltip]
(when (not= (:id active) tooltip-id)
(when-let [tooltip-el (dom/get-element (:id active))]
(dom/set-css-property! tooltip-el "display" "none"))
(reset! active-tooltip nil)))
(reset! active-tooltip {:id tooltip-id :trigger trigger-el})
(reset! visible* true))))))
(when-not (.-hidden js/document)
(let [trigger-el (mf/ref-val trigger-ref)]
(clear-schedule schedule-ref)
(add-schedule schedule-ref (d/nilv delay 300)
(fn []
(when-let [active @active-tooltip]
(when (not= (:id active) tooltip-id)
(when-let [tooltip-el (dom/get-element (:id active))]
(dom/set-css-property! tooltip-el "display" "none"))
(reset! active-tooltip nil)))
(reset! active-tooltip {:id tooltip-id :trigger trigger-el})
(reset! visible* true)))))))
on-hide
(mf/use-fn
@ -243,6 +244,17 @@
content
aria-label)})]
(mf/use-effect
(mf/deps tooltip-id)
(fn []
(let [handle-visibility-change
(fn []
(when (.-hidden js/document)
(on-hide)))]
(js/document.addEventListener "visibilitychange" handle-visibility-change)
;; cleanup
#(js/document.removeEventListener "visibilitychange" handle-visibility-change))))
(mf/use-effect
(mf/deps visible placement offset)
(fn []

View File

@ -32,6 +32,7 @@
[app.main.ui.components.search-bar :refer [search-bar*]]
[app.main.ui.components.title-bar :refer [title-bar*]]
[app.main.ui.context :as ctx]
[app.main.ui.ds.buttons.button :refer [button*]]
[app.main.ui.ds.buttons.icon-button :refer [icon-button*]]
[app.main.ui.ds.foundations.assets.icon :as i]
[app.main.ui.ds.layout.tab-switcher :refer [tab-switcher*]]
@ -47,12 +48,6 @@
[cuerdas.core :as str]
[rumext.v2 :as mf]))
(def ^:private close-icon
(deprecated-icon/icon-xref :close (stl/css :close-icon)))
(def ^:private add-icon
(deprecated-icon/icon-xref :add (stl/css :add-icon)))
(defn- get-library-summary
"Given a library data return a summary representation of this library"
[data]
@ -171,12 +166,12 @@
[:div {:class (stl/css :sample-library-item)
:key (dm/str id)}
[:div {:class (stl/css :sample-library-item-name)} (:name library)]
[:input {:class (stl/css-case :sample-library-button true
:sample-library-add (nil? importing?)
:sample-library-adding (some? importing?))
:type "button"
:value (if (= importing? id) (tr "labels.adding") (tr "labels.add"))
:on-click import-library}]]))
[:> button* {:variant "secondary"
:disabled (some? importing?)
:on-click import-library
:class (stl/css :sample-library-button)}
(if (= importing? id) (tr "labels.adding") (tr "labels.add"))]]))
(defn- empty-library?
"Check if currentt library summary has elements or not"
@ -341,31 +336,31 @@
[:div {:class (stl/css :section-list-item)}
[:div {:class (stl/css :item-content)}
[:div {:class (stl/css :item-name)} (tr "workspace.libraries.file-library")]
[:div {:class (stl/css :item-title)} (tr "workspace.libraries.file-library")]
[:ul {:class (stl/css :item-contents)}
[:> library-description* {:summary summary}]]]
(if ^boolean is-shared
[:input {:class (stl/css :item-unpublish)
:type "button"
:value (tr "common.unpublish")
:on-click unpublish}]
[:input {:class (stl/css :item-publish)
:type "button"
:value (tr "common.publish")
:on-click publish}])]
[:> button* {:variant "secondary"
:type "button"
:on-click unpublish}
(tr "common.unpublish")]
[:> button* {:variant "primary"
:type "button"
:on-click publish}
(tr "common.publish")])]
(for [{:keys [id name data connected-to connected-to-names] :as library} linked-libraries]
(let [disabled? (some #(contains? linked-libraries-ids %) connected-to)
has-tokens? (and (has-tokens? library)
(contains? cf/flags :token-import-from-library))]
[:div {:class (if has-tokens?
(stl/css :section-list-item-double-icon)
(stl/css :section-list-item))
[:div {:class (stl/css :section-list-item)
:key (dm/str id)
:data-testid "library-item"}
[:div {:class (stl/css :item-content)}
[:div {:class (stl/css :item-name)} name]
[:div {:class (stl/css-case :item-name true
:item-name-short has-tokens?)} name]
[:ul {:class (stl/css :item-contents)}
(let [summary (get-library-summary data)]
[:*
@ -375,23 +370,23 @@
[:span "(" (tr "workspace.libraries.connected-to") " "]
[:span {:class (stl/css :connected-to-values)} (str/join ", " connected-to-names)]
[:span ")"]])])]]
[:div {:class (stl/css :library-actions)}
(when ^boolean has-tokens?
[:> icon-button*
{:type "button"
:aria-label (tr "workspace.tokens.import-tokens")
:icon i/import-export
:data-library-id (dm/str id)
:variant "secondary"
:on-click import-tokens}])
(when ^boolean has-tokens?
[:> icon-button*
{:type "button"
:aria-label (tr "workspace.tokens.import-tokens")
:icon i/import-export
:data-library-id (dm/str id)
:variant "secondary"
:on-click import-tokens}])
[:> icon-button* {:type "button"
:aria-label (tr "workspace.libraries.unlink-library-btn")
:icon i/detach
:data-library-id (dm/str id)
:variant "secondary"
:disabled disabled?
:on-click unlink-library}]]))]]
[:> icon-button* {:type "button"
:aria-label (tr "workspace.libraries.unlink-library-btn")
:icon i/detach
:data-library-id (dm/str id)
:variant "secondary"
:disabled disabled?
:on-click unlink-library}]]]))]]
[:div {:class (stl/css :shared-section)}
[:> title-bar* {:collapsable false
@ -415,11 +410,12 @@
(adapt-backend-summary))]
[:> library-description* {:summary summary}])]]
[:button {:class (stl/css :item-button-shared)
:data-library-id (dm/str id)
:title (tr "workspace.libraries.shared-library-btn")
:on-click link-library}
add-icon]])]
[:> icon-button* {:class (stl/css :item-button-shared)
:variant "secondary"
:data-library-id (dm/str id)
:icon "add"
:aria-label (tr "workspace.libraries.shared-library-btn")
:on-click link-library}]])]
(when (empty? shared-libraries)
[:div {:class (stl/css :section-list-empty)}
@ -440,6 +436,7 @@
(for [library sample-libraries]
[:> sample-library-entry*
{:library library
:key (dm/str (:id library))
:importing importing*}])]]
:else
@ -540,17 +537,17 @@
[:div {:class (stl/css :section-list-item)
:key (dm/str id)}
[:div {:class (stl/css :item-content)}
[:div {:class (stl/css :item-name)} name]
[:div {:class (stl/css :item-name-long)} name]
[:ul {:class (stl/css :item-contents)} (describe-library
(count components)
0
(count colors)
(count typographies))]]
[:button {:type "button"
:class (stl/css :item-update)
:disabled updating?
:data-library-id (dm/str id)
:on-click update}
[:> button* {:class (stl/css :item-update)
:disabled updating?
:variant "primary"
:data-library-id (dm/str id)
:on-click update}
(tr "workspace.libraries.update")]
[:div {:class (stl/css :libraries-updates)}
@ -684,11 +681,11 @@
:on-click close-dialog-outside
:data-testid "libraries-modal"}
[:div {:class (stl/css :modal-dialog)}
[:button {:class (stl/css :close-btn)
:on-click close-dialog
:aria-label (tr "labels.close")
:data-testid "close-libraries"}
close-icon]
[:> icon-button* {:class (stl/css :close-btn)
:on-click close-dialog
:aria-label (tr "labels.close")
:variant "ghost"
:icon i/close}]
[:div {:class (stl/css :modal-title)}
(tr "workspace.libraries.libraries")]
@ -760,5 +757,6 @@
"created in your files previously to this new version."]]]
[:div {:class (stl/css :info-bottom)}
[:button {:class (stl/css :primary-button)
:on-click handle-gotit-click} "I GOT IT"]]]]]))
[:> button* {:class (stl/css :primary-button)
:variant "primary"
:on-click handle-gotit-click} "I GOT IT"]]]]]))

View File

@ -4,7 +4,6 @@
//
// Copyright (c) KALEIDOS INC
@use "refactor/common-refactor.scss" as deprecated;
@use "ds/_sizes.scss" as *;
@use "ds/_borders.scss" as *;
@use "ds/_utils.scss" as *;
@ -33,7 +32,7 @@
background-color: var(--modal-background-color);
border: $b-2 solid var(--modal-border-color);
display: grid;
grid-template-rows: auto 1fr;
grid-template-rows: 0 auto 1fr;
min-width: $sz-364;
min-height: $sz-192;
height: $sz-520;
@ -42,23 +41,6 @@
max-width: $sz-712;
}
// TODO: Remove this extended creating modal component
.close-btn {
@extend .modal-close-btn-base;
}
.close-icon {
display: flex;
justify-content: center;
align-items: center;
height: $sz-16;
width: $sz-16;
color: transparent;
fill: none;
stroke-width: $b-1;
stroke: var(--icon-foreground);
}
.modal-title {
@include t.use-typography("headline-medium");
margin-block-end: var(--sp-l);
@ -81,12 +63,6 @@
display: grid;
grid-template-rows: auto 1fr;
gap: var(--sp-s);
.section-list {
.section-list-item:first-child {
border: none;
}
}
}
.shared-section {
@ -116,6 +92,10 @@
border-radius: $br-8;
}
.section-list-item:first-child {
border: none;
}
.section-list-item-double-icon {
@extend .section-list-item;
grid-template-columns: 1fr auto auto;
@ -125,44 +105,10 @@
height: fit-content;
}
.item-publish,
.item-unpublish {
// TODO: remove this extended by using DS button component
@extend .button-primary;
@include t.use-typography("headline-small");
height: $sz-32;
min-width: px2rem(92);
padding: var(--sp-s) var(--sp-xxl);
margin: 0;
border-radius: $br-8;
}
.item-unpublish {
// TODO: remove this extended by using DS button component
@extend .button-secondary;
}
.item-button,
.item-button-shared {
// TODO: remove this extended by using DS button component
@extend .button-secondary;
height: $sz-32;
width: $sz-32;
margin-inline-start: var(--sp-xxs);
padding: var(--sp-s);
}
.detach-icon,
.add-icon {
display: flex;
justify-content: center;
align-items: center;
height: $sz-16;
width: $sz-16;
color: transparent;
fill: none;
stroke-width: $b-1;
stroke: var(--icon-foreground);
.close-btn {
position: absolute;
inset-block-start: var(--sp-s);
inset-inline-end: var(--sp-s);
}
.section-list-shared {
@ -175,26 +121,6 @@
color: var(--title-foreground-color);
}
.search-icon {
display: flex;
justify-content: center;
align-items: center;
width: px2rem(20);
padding: 0 0 0 var(--sp-s);
svg {
display: flex;
justify-content: center;
align-items: center;
color: transparent;
fill: none;
height: px2rem(12);
width: px2rem(12);
stroke-width: 1.33px;
stroke: var(--icon-foreground);
}
}
// empty state
.section-list-empty {
display: grid;
@ -206,21 +132,13 @@
margin-block: var(--sp-l);
}
.library-icon {
display: flex;
justify-content: center;
align-items: center;
color: transparent;
fill: none;
stroke-width: $b-1;
stroke: var(--icon-foreground);
height: $sz-32;
width: $sz-32;
}
// Update library tab
.libraries-updates-see-all {
@extend .link;
background: unset;
border: none;
color: var(--link-foreground-color);
cursor: pointer;
text-decoration: none;
direction: rtl;
grid-column: span 3;
margin-block-start: var(--sp-s);
@ -236,7 +154,7 @@
display: grid;
grid-column: span 3;
grid-template-columns: repeat(auto-fill, minmax(px2rem(160), 1fr));
gap: deprecated.$s-24;
gap: var(--sp-xxl);
margin-block-start: var(--sp-l);
}
@ -246,7 +164,7 @@
}
.libraries-updates-item {
@include deprecated.bodyLargeTypography;
@include t.use-typography("body-large");
display: grid;
grid-template-columns: auto 1fr;
align-items: start;
@ -277,22 +195,32 @@
@include t.use-typography("body-large");
@include textEllipsis;
margin: 0;
max-width: px2rem(216);
max-width: px2rem(236);
color: var(--library-name-foreground-color);
}
.item-name-short {
max-width: px2rem(206);
}
.item-name-long {
@extend .item-name;
max-width: px2rem(450);
}
.item-title {
@include t.use-typography("body-large");
margin: 0;
color: var(--library-name-foreground-color);
}
.item-update {
@extend .button-primary;
@include t.use-typography("headline-small");
height: $sz-32;
min-width: px2rem(92);
padding: var(--sp-s) var(--sp-xxl);
margin-inline-end: var(--sp-xxs);
border-radius: $br-8;
&:disabled {
@extend .button-disabled;
}
}
.item-contents {
@ -303,6 +231,11 @@
margin: 0;
}
.library-actions {
display: flex;
gap: var(--sp-xs);
}
.element-count {
white-space: nowrap;
@ -386,7 +319,6 @@
}
.primary-button {
@extend .button-primary;
@include t.use-typography("headline-small");
padding: 0 var(--sp-l);
}
@ -434,16 +366,6 @@
max-width: px2rem(232);
}
// TODO: Remove this extended using a DS component
.sample-library-add {
@extend .button-secondary;
}
// TODO: Remove this extended using a DS component
.sample-library-adding {
@extend .button-disabled;
}
.sample-library-button {
@include t.use-typography("headline-small");
height: $sz-32;

View File

@ -114,8 +114,7 @@
:class (stl/css :theme-row)}
[:div {:class (stl/css :theme-switch-row)}
[:> switch* {:id name
:label name
[:> switch* {:label name
:on-change on-switch-theme
:default-checked selected?}]]

View File

@ -2916,7 +2916,7 @@ msgstr "Přestávka na údržbu: do 5 minut budeme mimo provoz na krátkou údr
#: src/app/main/data/common.cljs:82
msgid "notifications.by-code.upgrade-version"
msgstr "K dispozici je nová verze, obnovte prosím stránku"
msgstr "K dispozici je nová verze."
#: src/app/main/ui/dashboard/team.cljs:170, src/app/main/ui/dashboard/team.cljs:867
msgid "notifications.invitation-email-sent"

View File

@ -3661,7 +3661,7 @@ msgstr ""
#: src/app/main/data/common.cljs:82
msgid "notifications.by-code.upgrade-version"
msgstr "Eine neue Version ist verfügbar, bitte aktualisieren Sie die Seite"
msgstr "Eine neue Version ist verfügbar."
#: src/app/main/ui/dashboard/team.cljs:825
msgid "notifications.invitation-deleted"

View File

@ -3819,7 +3819,7 @@ msgstr "Maintenance break: we will be down for a short maintenance within 5 minu
#: src/app/main/data/common.cljs:82
msgid "notifications.by-code.upgrade-version"
msgstr "A new version is available, please refresh the page"
msgstr "A new version is available."
#: src/app/main/ui/dashboard/team.cljs:825
msgid "notifications.invitation-deleted"

View File

@ -3776,7 +3776,7 @@ msgstr ""
#: src/app/main/data/common.cljs:82
msgid "notifications.by-code.upgrade-version"
msgstr "Una nueva versión está disponible, por favor actualiza la página"
msgstr "Una nueva versión está disponible."
#: src/app/main/ui/dashboard/team.cljs:825
msgid "notifications.invitation-deleted"

View File

@ -3717,7 +3717,7 @@ msgstr ""
#: src/app/main/data/common.cljs:82
msgid "notifications.by-code.upgrade-version"
msgstr "Il y a une nouvelle version disponible. Rafraîchissez la page"
msgstr "Il y a une nouvelle version disponible."
#: src/app/main/ui/dashboard/team.cljs:825
msgid "notifications.invitation-deleted"

View File

@ -3690,7 +3690,7 @@ msgstr ""
#: src/app/main/data/common.cljs:82
msgid "notifications.by-code.upgrade-version"
msgstr "Une nouvelle version est disponible. Merci de rafraîchir la page"
msgstr "Une nouvelle version est disponible."
#: src/app/main/ui/dashboard/team.cljs:825
msgid "notifications.invitation-deleted"

View File

@ -2269,7 +2269,7 @@ msgstr "sabunta sashe a babbar taska"
#: src/app/main/data/common.cljs:82
msgid "notifications.by-code.upgrade-version"
msgstr "akwai sabon yayi, fatan za a sabunta fage"
msgstr "akwai sabon yayi."
#: src/app/main/ui/dashboard/team.cljs:170, src/app/main/ui/dashboard/team.cljs:867
msgid "notifications.invitation-email-sent"

View File

@ -3465,10 +3465,6 @@ msgstr "כדי לגשת למיזם הזה, אפשר לבקש מבעלי הצוו
msgid "notifications.by-code.maintenance"
msgstr "הפסקת תחזוקה: המערכת תושבת לעבודת תחזוקה קצרה תוך 5 דקות."
#: src/app/main/data/common.cljs:82
msgid "notifications.by-code.upgrade-version"
msgstr "יש גרסה חדשה, נא לרענן את העמוד"
#: src/app/main/ui/dashboard/team.cljs:825
msgid "notifications.invitation-deleted"
msgstr "ההזמנה נמחקה בהצלחה"

View File

@ -3578,10 +3578,6 @@ msgstr "इस परियोजना तक पहुँचने के ल
msgid "notifications.by-code.maintenance"
msgstr "रखरखाव विराम: हम 5 मिनट के भीतर एक छोटे रखरखाव के लिए बंद रहेंगे।"
#: src/app/main/data/common.cljs:82
msgid "notifications.by-code.upgrade-version"
msgstr "एक नया संस्करण उपलब्ध है, कृपया पृष्ठ को रिफ्रेश करें"
#: src/app/main/ui/dashboard/team.cljs:825
msgid "notifications.invitation-deleted"
msgstr "आमंत्रण सफलतापूर्वक हटा दिया गया"

View File

@ -2913,7 +2913,7 @@ msgstr ""
#: src/app/main/data/common.cljs:82
msgid "notifications.by-code.upgrade-version"
msgstr "Dostupna je nova verzija, molimo osvježite stranicu"
msgstr "Dostupna je nova verzija."
#: src/app/main/ui/dashboard/team.cljs:170, src/app/main/ui/dashboard/team.cljs:867
msgid "notifications.invitation-email-sent"

View File

@ -3088,7 +3088,7 @@ msgstr ""
#: src/app/main/data/common.cljs:82
msgid "notifications.by-code.upgrade-version"
msgstr "Versi baru sudah tersedia, silakan muat ulang laman"
msgstr "Versi baru sudah tersedia."
#: src/app/main/ui/dashboard/team.cljs:170, src/app/main/ui/dashboard/team.cljs:867
msgid "notifications.invitation-email-sent"

View File

@ -1935,7 +1935,7 @@ msgstr "Kagbuo"
#: src/app/main/data/common.cljs:82
msgid "notifications.by-code.upgrade-version"
msgstr "A new version is available, please refresh the page"
msgstr "A new version is available."
#: src/app/main/ui/settings/delete_account.cljs:24
msgid "notifications.profile-deletion-not-allowed"

View File

@ -3686,7 +3686,7 @@ msgstr ""
#: src/app/main/data/common.cljs:82
msgid "notifications.by-code.upgrade-version"
msgstr "Una nuova versione è disponibile, si prega di ricaricare la pagina"
msgstr "Una nuova versione è disponibile."
#: src/app/main/ui/dashboard/team.cljs:825
msgid "notifications.invitation-deleted"

View File

@ -3389,7 +3389,7 @@ msgstr ""
#: src/app/main/data/common.cljs:82
msgid "notifications.by-code.upgrade-version"
msgstr "Ir pieejama jauna versija, lūgums atsvaidzināt lapu"
msgstr "Ir pieejama jauna versija."
#: src/app/main/ui/dashboard/team.cljs:170, src/app/main/ui/dashboard/team.cljs:867
msgid "notifications.invitation-email-sent"

View File

@ -2332,7 +2332,7 @@ msgstr "Kemas kini komponen dalam pustaka kongsi"
#: src/app/main/data/common.cljs:82
msgid "notifications.by-code.upgrade-version"
msgstr "Versi baharu tersedia, sila muat semula halaman"
msgstr "Versi baharu tersedia."
#: src/app/main/ui/dashboard/team.cljs:170, src/app/main/ui/dashboard/team.cljs:867
msgid "notifications.invitation-email-sent"

View File

@ -3711,7 +3711,7 @@ msgstr ""
#: src/app/main/data/common.cljs:82
msgid "notifications.by-code.upgrade-version"
msgstr "Er is een nieuwe versie beschikbaar, vernieuw de pagina"
msgstr "Er is een nieuwe versie beschikbaar."
#: src/app/main/ui/dashboard/team.cljs:825
msgid "notifications.invitation-deleted"

View File

@ -2968,7 +2968,7 @@ msgstr ""
#: src/app/main/data/common.cljs:82
msgid "notifications.by-code.upgrade-version"
msgstr "Está disponível uma nova versão, por favor atualiza a página"
msgstr "Está disponível uma nova versão."
#: src/app/main/ui/dashboard/team.cljs:170, src/app/main/ui/dashboard/team.cljs:867
msgid "notifications.invitation-email-sent"

View File

@ -3446,7 +3446,7 @@ msgstr ""
#: src/app/main/data/common.cljs:82
msgid "notifications.by-code.upgrade-version"
msgstr "O versiune nouă este valabilă, te rugăm să reîncarci pagina"
msgstr "O versiune nouă este valabilă."
#: src/app/main/ui/dashboard/team.cljs:825
msgid "notifications.invitation-deleted"

View File

@ -3108,10 +3108,6 @@ msgstr ""
"Технический перерыв: сервис будет недоступен короткое время в течение 5 "
"минут."
#: src/app/main/data/common.cljs:82
msgid "notifications.by-code.upgrade-version"
msgstr "Доступна новая версия, обновите страницу"
#: src/app/main/ui/dashboard/team.cljs:170, src/app/main/ui/dashboard/team.cljs:867
msgid "notifications.invitation-email-sent"
msgstr "Приглашение успешно отправлено"

View File

@ -2495,10 +2495,6 @@ msgstr ""
msgid "modals.update-remote-component.message"
msgstr "Ажурирајте компоненту у дељеној библиотеци"
#: src/app/main/data/common.cljs:82
msgid "notifications.by-code.upgrade-version"
msgstr "Доступна је нова верзија, молимо Вас да освежите страницу"
#: src/app/main/ui/dashboard/team.cljs:170, src/app/main/ui/dashboard/team.cljs:867
msgid "notifications.invitation-email-sent"
msgstr "Позивница је успешно послата"

View File

@ -3501,7 +3501,7 @@ msgstr ""
#: src/app/main/data/common.cljs:82
msgid "notifications.by-code.upgrade-version"
msgstr "En ny version är tillgänglig, uppdatera sidan"
msgstr "En ny version är tillgänglig."
#: src/app/main/ui/dashboard/team.cljs:825
msgid "notifications.invitation-deleted"

View File

@ -3673,7 +3673,7 @@ msgstr "Bakım arası: 5 dakika içinde kısa bir bakım için kapalı olacağı
#: src/app/main/data/common.cljs:82
msgid "notifications.by-code.upgrade-version"
msgstr "Yeni bir sürüm mevcut, lütfen sayfayı yenileyin"
msgstr "Yeni bir sürüm mevcut."
#: src/app/main/ui/dashboard/team.cljs:825
msgid "notifications.invitation-deleted"

View File

@ -3262,10 +3262,6 @@ msgstr ""
"Перерва на технічне обслуговування: ми закінчимо технічне обслуговування "
"протягом 5 хвилин."
#: src/app/main/data/common.cljs:82
msgid "notifications.by-code.upgrade-version"
msgstr "Нова версія доступна, будь ласка, оновіть сторінку"
#: src/app/main/ui/dashboard/team.cljs:170, src/app/main/ui/dashboard/team.cljs:867
msgid "notifications.invitation-email-sent"
msgstr "Запрощення успішно надіслано"

View File

@ -2151,10 +2151,6 @@ msgstr ""
msgid "modals.update-remote-component.message"
msgstr "Mú ẹ̀yà iyàrá ìkàwé pípín kan dójú ìwọ̀n"
#: src/app/main/data/common.cljs:82
msgid "notifications.by-code.upgrade-version"
msgstr "Ẹ̀yà tuntun ti wà, jọ̀wọ́ tún sọ ọ́ jí"
#: src/app/main/ui/dashboard/team.cljs:170, src/app/main/ui/dashboard/team.cljs:867
msgid "notifications.invitation-email-sent"
msgstr "Ìfipè tí a fi ránńṣẹ́ ti lọ dáadáa"

View File

@ -3140,10 +3140,6 @@ msgstr "要访问此项目,您可以询问团队拥有者。"
msgid "notifications.by-code.maintenance"
msgstr "维护中断我们将在5分钟内进行短暂维护。"
#: src/app/main/data/common.cljs:82
msgid "notifications.by-code.upgrade-version"
msgstr "有新版本可用,请刷新页面"
#: src/app/main/ui/dashboard/team.cljs:170, src/app/main/ui/dashboard/team.cljs:867
msgid "notifications.invitation-email-sent"
msgstr "成功发送邀请"

View File

@ -2770,10 +2770,6 @@ msgstr "要存取該項目,您可以詢問團隊老大。"
msgid "notifications.by-code.maintenance"
msgstr "中斷維護我們將在5分鐘內進行短暫維護。"
#: src/app/main/data/common.cljs:82
msgid "notifications.by-code.upgrade-version"
msgstr "有新版本可用,請重新整理頁面"
#: src/app/main/ui/dashboard/team.cljs:170, src/app/main/ui/dashboard/team.cljs:867
msgid "notifications.invitation-email-sent"
msgstr "邀請已成功發送"