mirror of
https://github.com/penpot/penpot.git
synced 2025-08-01 20:38:25 +02:00
🐛 Fix wrong behaviour for unpaid or canceled subscriptions (#6932)
This commit is contained in:
parent
4f0d3660de
commit
f768ffbdad
4 changed files with 67 additions and 65 deletions
|
@ -61,7 +61,7 @@
|
|||
[:> cta-power-up*
|
||||
{:top-title (tr "subscription.dashboard.power-up.your-subscription")
|
||||
:top-description (tr "subscription.dashboard.power-up.professional.top-title")
|
||||
:bottom-description (tr "subscription.dashboard.power-up.professional.bottom-description", subscription-href)
|
||||
:bottom-description (tr "subscription.dashboard.power-up.professional.bottom", subscription-href)
|
||||
:has-dropdown true}]
|
||||
|
||||
"unlimited"
|
||||
|
@ -75,7 +75,7 @@
|
|||
[:> cta-power-up*
|
||||
{:top-title (tr "subscription.dashboard.power-up.your-subscription")
|
||||
:top-description (tr "subscription.dashboard.power-up.unlimited-plan")
|
||||
:bottom-description (tr "subscription.dashboard.power-up.unlimited.bottom-description", subscription-href)
|
||||
:bottom-description (tr "subscription.dashboard.power-up.unlimited.bottom", subscription-href)
|
||||
:has-dropdown true}])
|
||||
|
||||
"enterprise"
|
||||
|
|
|
@ -62,7 +62,7 @@
|
|||
(mf/defc subscribe-management-dialog
|
||||
{::mf/register modal/components
|
||||
::mf/register-as :management-dialog}
|
||||
[{:keys [subscription-type teams subscribe-to-trial]}]
|
||||
[{:keys [subscription-type current-subscription teams subscribe-to-trial]}]
|
||||
|
||||
(let [subscription-name (if subscribe-to-trial
|
||||
(if (= subscription-type "unlimited")
|
||||
|
@ -127,12 +127,15 @@
|
|||
(tr "subscription.settings.management.dialog.no-teams")])
|
||||
|
||||
(when (and
|
||||
(or (= subscription-type "professional") (= subscription-type "unlimited"))
|
||||
(or (and (= subscription-type "professional") (contains? #{"unlimited" "enterprise"} (:type current-subscription)))
|
||||
(and (= subscription-type "unlimited") (= (:type current-subscription) "enterprise")))
|
||||
(not (contains? #{"unpaid" "canceled"} (:status current-subscription)))
|
||||
(not subscribe-to-trial))
|
||||
[:div {:class (stl/css :modal-text)}
|
||||
(tr "subscription.settings.management.dialog.downgrade")])
|
||||
|
||||
(if (and (= subscription-type "unlimited") subscribe-to-trial)
|
||||
(if (and (= subscription-type "unlimited")
|
||||
(or subscribe-to-trial (contains? #{"unpaid" "canceled"} (:status current-subscription))))
|
||||
[:& fm/form {:on-submit subscribe-to-unlimited
|
||||
:class (stl/css :seats-form)
|
||||
:form form}
|
||||
|
@ -161,7 +164,7 @@
|
|||
:on-click handle-close-dialog}]
|
||||
|
||||
[:> fm/submit-button*
|
||||
{:label (tr "subscription.settings.start-trial")
|
||||
{:label (if subscribe-to-trial (tr "subscription.settings.start-trial") (tr "labels.continue"))
|
||||
:class (stl/css :primary-button)}]]]]
|
||||
|
||||
[:div {:class (stl/css :modal-footer)}
|
||||
|
@ -232,6 +235,9 @@
|
|||
(or (= params-subscription "subscribed-to-penpot-unlimited")
|
||||
(= params-subscription "subscribed-to-penpot-enterprise"))
|
||||
|
||||
success-modal-is-trial?
|
||||
(-> route :params :query :trial)
|
||||
|
||||
subscription
|
||||
(-> profile :props :subscription)
|
||||
|
||||
|
@ -269,12 +275,13 @@
|
|||
open-subscription-modal
|
||||
(mf/use-fn
|
||||
(mf/deps teams)
|
||||
(fn [subscription-type]
|
||||
(fn [subscription-type current-subscription]
|
||||
(st/emit! (ev/event {::ev/name "open-subscription-modal"
|
||||
::ev/origin "settings:in-app"}))
|
||||
(st/emit!
|
||||
(modal/show :management-dialog
|
||||
{:subscription-type subscription-type
|
||||
:current-subscription current-subscription
|
||||
:teams teams :subscribe-to-trial (not subscription)}))))]
|
||||
|
||||
(mf/with-effect []
|
||||
|
@ -285,7 +292,7 @@
|
|||
(mf/with-effect []
|
||||
(dom/set-html-title (tr "subscription.labels")))
|
||||
|
||||
(mf/with-effect [authenticated? show-subscription-success-modal? show-trial-subscription-modal? subscription]
|
||||
(mf/with-effect [authenticated? show-subscription-success-modal? show-trial-subscription-modal? success-modal-is-trial? subscription]
|
||||
(when ^boolean authenticated?
|
||||
(cond
|
||||
^boolean show-trial-subscription-modal?
|
||||
|
@ -297,6 +304,7 @@
|
|||
{:subscription-type (if (= params-subscription "subscription-to-penpot-unlimited")
|
||||
"unlimited"
|
||||
"enterprise")
|
||||
:current-subscription subscription
|
||||
:teams teams
|
||||
:subscribe-to-trial (not subscription)})
|
||||
(rt/nav :settings-subscription {} {::rt/replace true}))
|
||||
|
@ -305,8 +313,12 @@
|
|||
(st/emit!
|
||||
(modal/show :subscription-success
|
||||
{:subscription-name (if (= params-subscription "subscribed-to-penpot-unlimited")
|
||||
(tr "subscription.settings.unlimited-trial")
|
||||
(tr "subscription.settings.enterprise-trial"))})
|
||||
(if (= success-modal-is-trial? "true")
|
||||
(tr "subscription.settings.unlimited-trial")
|
||||
(tr "subscription.settings.unlimited"))
|
||||
(if (= success-modal-is-trial? "true")
|
||||
(tr "subscription.settings.enterprise-trial")
|
||||
(tr "subscription.settings.enterprise")))})
|
||||
(du/update-profile-props {:subscription
|
||||
(-> subscription
|
||||
(assoc :type (if (= params-subscription "subscribed-to-penpot-unlimited")
|
||||
|
@ -327,7 +339,7 @@
|
|||
[:> plan-card* {:card-title (tr "subscription.settings.professional")
|
||||
:benefits [(tr "subscription.settings.professional.projects-files"),
|
||||
(tr "subscription.settings.professional.teams-editors"),
|
||||
(tr "subscription.settings.professional.storage")]}]
|
||||
(tr "subscription.settings.professional.storage-autosave")]}]
|
||||
|
||||
"unlimited"
|
||||
(if subscription-is-trial?
|
||||
|
@ -336,7 +348,7 @@
|
|||
:benefits-title (tr "subscription.settings.benefits.all-professional-benefits")
|
||||
:benefits [(tr "subscription.settings.unlimited.teams"),
|
||||
(tr "subscription.settings.unlimited.bill"),
|
||||
(tr "subscription.settings.unlimited.storage")]
|
||||
(tr "subscription.settings.unlimited.storage-autosave")]
|
||||
:cta-text (tr "subscription.settings.manage-your-subscription")
|
||||
:cta-link go-to-payments
|
||||
:cta-text-trial (tr "subscription.settings.add-payment-to-continue")
|
||||
|
@ -348,7 +360,7 @@
|
|||
:benefits-title (tr "subscription.settings.benefits.all-unlimited-benefits")
|
||||
:benefits [(tr "subscription.settings.unlimited.teams"),
|
||||
(tr "subscription.settings.unlimited.bill"),
|
||||
(tr "subscription.settings.unlimited.storage")]
|
||||
(tr "subscription.settings.unlimited.storage-autosave")]
|
||||
:cta-text (tr "subscription.settings.manage-your-subscription")
|
||||
:cta-link go-to-payments
|
||||
:editors (-> profile :props :subscription :quantity)}])
|
||||
|
@ -358,22 +370,22 @@
|
|||
[:> plan-card* {:card-title (tr "subscription.settings.enterprise-trial")
|
||||
:card-title-icon i/character-e
|
||||
:benefits-title (tr "subscription.settings.benefits.all-professional-benefits")
|
||||
:benefits [(tr "subscription.settings.enterprise.support"),
|
||||
(tr "subscription.settings.enterprise.security"),
|
||||
(tr "subscription.settings.enterprise.logs")]
|
||||
:benefits [(tr "subscription.settings.enterprise.security"),
|
||||
(tr "subscription.settings.enterprise.capped-bill"),
|
||||
(tr "subscription.settings.enterprise.unlimited-storage")]
|
||||
:cta-text (tr "subscription.settings.manage-your-subscription")
|
||||
:cta-link go-to-payments}]
|
||||
[:> plan-card* {:card-title (tr "subscription.settings.enterprise")
|
||||
:card-title-icon i/character-e
|
||||
:benefits-title (tr "subscription.settings.benefits.all-professional-benefits")
|
||||
:benefits [(tr "subscription.settings.enterprise.support"),
|
||||
(tr "subscription.settings.enterprise.security"),
|
||||
(tr "subscription.settings.enterprise.logs")]
|
||||
:benefits [(tr "subscription.settings.enterprise.security"),
|
||||
(tr "subscription.settings.enterprise.capped-bill"),
|
||||
(tr "subscription.settings.enterprise.unlimited-storage")]
|
||||
:cta-text (tr "subscription.settings.manage-your-subscription")
|
||||
:cta-link go-to-payments}]))
|
||||
|
||||
[:div {:class (stl/css :membership-container)}
|
||||
(when subscribed-since
|
||||
(when (and subscribed-since (not= subscription-type "professional"))
|
||||
[:div {:class (stl/css :membership)}
|
||||
[:span {:class (stl/css :subscription-member)} i/crown]
|
||||
[:span {:class (stl/css :membership-date)}
|
||||
|
@ -392,7 +404,7 @@
|
|||
:price-period (tr "subscription.settings.price-editor-month")
|
||||
:benefits [(tr "subscription.settings.professional.projects-files"),
|
||||
(tr "subscription.settings.professional.teams-editors"),
|
||||
(tr "subscription.settings.professional.storage")]
|
||||
(tr "subscription.settings.professional.storage-autosave")]
|
||||
:cta-text (tr "subscription.settings.subscribe")
|
||||
:cta-link #(open-subscription-modal "professional")
|
||||
:cta-text-with-icon (tr "subscription.settings.more-information")
|
||||
|
@ -406,9 +418,9 @@
|
|||
:benefits-title (tr "subscription.settings.benefits.all-professional-benefits")
|
||||
:benefits [(tr "subscription.settings.unlimited.teams"),
|
||||
(tr "subscription.settings.unlimited.bill"),
|
||||
(tr "subscription.settings.unlimited.storage")]
|
||||
(tr "subscription.settings.unlimited.storage-autosave")]
|
||||
:cta-text (if subscription (tr "subscription.settings.subscribe") (tr "subscription.settings.try-it-free"))
|
||||
:cta-link #(open-subscription-modal "unlimited")
|
||||
:cta-link #(open-subscription-modal "unlimited" subscription-type)
|
||||
:cta-text-with-icon (tr "subscription.settings.more-information")
|
||||
:cta-link-with-icon go-to-pricing-page}])
|
||||
|
||||
|
@ -417,10 +429,10 @@
|
|||
:card-title-icon i/character-e
|
||||
:price-value "$950"
|
||||
:price-period (tr "subscription.settings.price-organization-month")
|
||||
:benefits-title (tr "subscription.settings.benefits.all-professional-benefits")
|
||||
:benefits [(tr "subscription.settings.enterprise.support"),
|
||||
(tr "subscription.settings.enterprise.security"),
|
||||
(tr "subscription.settings.enterprise.logs")]
|
||||
:benefits-title (tr "subscription.settings.benefits.all-unlimited-benefits")
|
||||
:benefits [(tr "subscription.settings.enterprise.security"),
|
||||
(tr "subscription.settings.enterprise.capped-bill"),
|
||||
(tr "subscription.settings.enterprise.unlimited-storage")]
|
||||
:cta-text (if subscription (tr "subscription.settings.subscribe") (tr "subscription.settings.try-it-free"))
|
||||
:cta-link #(open-subscription-modal "enterprise")
|
||||
:cta-text-with-icon (tr "subscription.settings.more-information")
|
||||
|
|
|
@ -4320,10 +4320,10 @@ msgstr "Advanced security, activity logs, dedicated support and more."
|
|||
|
||||
#: src/app/main/ui/dashboard/subscription.cljs:60
|
||||
#, markdown
|
||||
msgid "subscription.dashboard.power-up.professional.bottom-description"
|
||||
msgid "subscription.dashboard.power-up.professional.bottom"
|
||||
msgstr ""
|
||||
"Get extra editors and storage, file backup and more with the Unlimited "
|
||||
"plan[Power up|target:self](%s)"
|
||||
"Get extra editors and storage, file recovery and more with the Unlimited "
|
||||
"plan. [Power up|target:self](%s)"
|
||||
|
||||
#: src/app/main/ui/dashboard/subscription.cljs:59
|
||||
msgid "subscription.dashboard.power-up.professional.top-title"
|
||||
|
@ -4357,10 +4357,10 @@ msgstr "Enterprise plan (trial)"
|
|||
|
||||
#: src/app/main/ui/dashboard/subscription.cljs:74
|
||||
#, markdown
|
||||
msgid "subscription.dashboard.power-up.unlimited.bottom-description"
|
||||
msgid "subscription.dashboard.power-up.unlimited.bottom"
|
||||
msgstr ""
|
||||
"Get advanced security, activity logs, dedicated support and more. Take a "
|
||||
"look to the[Enterprise plan.|target:self](%s)"
|
||||
"Get extra editors, more storage and backup, advanced security and more. "
|
||||
"[Take a look to the Enterprise plan.|target:self](%s)"
|
||||
|
||||
#: src/app/main/ui/dashboard/subscription.cljs:70
|
||||
#, unused
|
||||
|
@ -4414,16 +4414,16 @@ msgid "subscription.settings.enterprise-trial"
|
|||
msgstr "Enterprise (trial)"
|
||||
|
||||
#: src/app/main/ui/settings/subscription.cljs:271, src/app/main/ui/settings/subscription.cljs:320
|
||||
msgid "subscription.settings.enterprise.logs"
|
||||
msgstr "Activity logs"
|
||||
msgid "subscription.settings.enterprise.unlimited-storage"
|
||||
msgstr "Unlimited storage and 90-day autosave versions and file recovery"
|
||||
|
||||
#: src/app/main/ui/settings/subscription.cljs:270, src/app/main/ui/settings/subscription.cljs:319
|
||||
msgid "subscription.settings.enterprise.security"
|
||||
msgstr "Advanced security"
|
||||
|
||||
#: src/app/main/ui/settings/subscription.cljs:269, src/app/main/ui/settings/subscription.cljs:318
|
||||
msgid "subscription.settings.enterprise.support"
|
||||
msgstr "Dedicated support"
|
||||
msgid "subscription.settings.enterprise.capped-bill"
|
||||
msgstr "Capped monthly bill"
|
||||
|
||||
#: src/app/main/ui/dashboard/subscription.cljs:114, src/app/main/ui/settings/subscription.cljs:251, src/app/main/ui/settings/subscription.cljs:262, src/app/main/ui/settings/subscription.cljs:272
|
||||
msgid "subscription.settings.manage-your-subscription"
|
||||
|
@ -4492,8 +4492,8 @@ msgid "subscription.settings.professional.projects-files"
|
|||
msgstr "Unlimited projects, files and drafts"
|
||||
|
||||
#: src/app/main/ui/settings/subscription.cljs:241, src/app/main/ui/settings/subscription.cljs:292
|
||||
msgid "subscription.settings.professional.storage"
|
||||
msgstr "10GB of storage and 7-day autosave versions"
|
||||
msgid "subscription.settings.professional.storage-autosave"
|
||||
msgstr "10GB of storage and 7-day autosave versions and file recovery"
|
||||
|
||||
#: src/app/main/ui/settings/subscription.cljs:240, src/app/main/ui/settings/subscription.cljs:291
|
||||
msgid "subscription.settings.professional.teams-editors"
|
||||
|
@ -4537,11 +4537,6 @@ msgstr "You've been supporting us with this plan since: %s"
|
|||
msgid "subscription.settings.try-it-free"
|
||||
msgstr "Try it free for 14 days"
|
||||
|
||||
#: src/app/main/ui/settings/subscription.cljs:119
|
||||
#, unused
|
||||
msgid "subscription.settings.ulimited.try-it-free"
|
||||
msgstr "Try it free for 14 days"
|
||||
|
||||
#: src/app/main/ui/dashboard/subscription.cljs:108, src/app/main/ui/settings/subscription.cljs:56, src/app/main/ui/settings/subscription.cljs:256, src/app/main/ui/settings/subscription.cljs:299
|
||||
msgid "subscription.settings.unlimited"
|
||||
msgstr "Unlimited"
|
||||
|
@ -4555,8 +4550,8 @@ msgid "subscription.settings.unlimited.bill"
|
|||
msgstr "Capped monthly bill"
|
||||
|
||||
#: src/app/main/ui/settings/subscription.cljs:250, src/app/main/ui/settings/subscription.cljs:261, src/app/main/ui/settings/subscription.cljs:306
|
||||
msgid "subscription.settings.unlimited.storage"
|
||||
msgstr "25GB of storage and 30-day autosave versions and file backup"
|
||||
msgid "subscription.settings.unlimited.storage-autosave"
|
||||
msgstr "25GB of storage and 30-day autosave versions and file recovery"
|
||||
|
||||
#: src/app/main/ui/settings/subscription.cljs:248, src/app/main/ui/settings/subscription.cljs:259, src/app/main/ui/settings/subscription.cljs:304
|
||||
msgid "subscription.settings.unlimited.teams"
|
||||
|
|
|
@ -4347,9 +4347,9 @@ msgstr "Seguridad avanzada, registros de actividad, asistencia dedicada y mucho
|
|||
|
||||
#: src/app/main/ui/dashboard/subscription.cljs:60
|
||||
#, markdown
|
||||
msgid "subscription.dashboard.power-up.professional.bottom-description"
|
||||
msgid "subscription.dashboard.power-up.professional.bottom"
|
||||
msgstr ""
|
||||
"Consigue editores y almacenamiento adicionales, copias de seguridad de "
|
||||
"Consigue editores y almacenamiento adicionales, recuperación de "
|
||||
"archivos y mucho más con el Plan Unlimited[Mejóralo|target:self](%s)"
|
||||
|
||||
#: src/app/main/ui/dashboard/subscription.cljs:59
|
||||
|
@ -4388,10 +4388,10 @@ msgstr "Plan Unlimited"
|
|||
|
||||
#: src/app/main/ui/dashboard/subscription.cljs:74
|
||||
#, markdown
|
||||
msgid "subscription.dashboard.power-up.unlimited.bottom-description"
|
||||
msgid "subscription.dashboard.power-up.unlimited.bottom"
|
||||
msgstr ""
|
||||
"Obtenga seguridad avanzada, registros de actividad, asistencia dedicada y "
|
||||
"mucho más. Echa un ojo al[Plan Enterprise|target:self](%s)"
|
||||
"Consigue editores adicionales, más almacenamiento y copias de seguridad, seguridad avanzada y mucho más. "
|
||||
"[Echa un ojo al Plan Enterprise|target:self](%s)"
|
||||
|
||||
#: src/app/main/ui/dashboard/subscription.cljs:70
|
||||
#, unused
|
||||
|
@ -4442,16 +4442,16 @@ msgid "subscription.settings.enterprise-trial"
|
|||
msgstr "Enterprise (prueba)"
|
||||
|
||||
#: src/app/main/ui/settings/subscription.cljs:271, src/app/main/ui/settings/subscription.cljs:320
|
||||
msgid "subscription.settings.enterprise.logs"
|
||||
msgstr "Registros de actividad"
|
||||
msgid "subscription.settings.enterprise.unlimited-storage"
|
||||
msgstr "Almacenamiento ilimitado y versiones de autoguardado de 90 días y recuperación de archivos"
|
||||
|
||||
#: src/app/main/ui/settings/subscription.cljs:270, src/app/main/ui/settings/subscription.cljs:319
|
||||
msgid "subscription.settings.enterprise.security"
|
||||
msgstr "Seguridad avanzada"
|
||||
|
||||
#: src/app/main/ui/settings/subscription.cljs:269, src/app/main/ui/settings/subscription.cljs:318
|
||||
msgid "subscription.settings.enterprise.support"
|
||||
msgstr "Apoyo específico"
|
||||
msgid "subscription.settings.enterprise.capped-bill"
|
||||
msgstr "Factura mensual limitada"
|
||||
|
||||
#: src/app/main/ui/dashboard/subscription.cljs:114, src/app/main/ui/settings/subscription.cljs:251, src/app/main/ui/settings/subscription.cljs:262, src/app/main/ui/settings/subscription.cljs:272
|
||||
msgid "subscription.settings.manage-your-subscription"
|
||||
|
@ -4516,8 +4516,8 @@ msgid "subscription.settings.professional.projects-files"
|
|||
msgstr "Proyectos, archivos y borradores ilimitados"
|
||||
|
||||
#: src/app/main/ui/settings/subscription.cljs:241, src/app/main/ui/settings/subscription.cljs:292
|
||||
msgid "subscription.settings.professional.storage"
|
||||
msgstr "10 GB de almacenamiento y versiones de autoguardado de 7 días"
|
||||
msgid "subscription.settings.professional.storage-autosave"
|
||||
msgstr "10 GB de almacenamiento y versiones de autoguardado de 7 días y recuperación de archivos"
|
||||
|
||||
#: src/app/main/ui/settings/subscription.cljs:240, src/app/main/ui/settings/subscription.cljs:291
|
||||
msgid "subscription.settings.professional.teams-editors"
|
||||
|
@ -4560,11 +4560,6 @@ msgstr "Nos has estado apoyando con este plan desde: %s"
|
|||
msgid "subscription.settings.try-it-free"
|
||||
msgstr "Pruébalo gratis durante 14 días"
|
||||
|
||||
#: src/app/main/ui/settings/subscription.cljs:119
|
||||
#, unused
|
||||
msgid "subscription.settings.ulimited.try-it-free"
|
||||
msgstr "Pruébalo gratis durante 14 días"
|
||||
|
||||
#: src/app/main/ui/dashboard/subscription.cljs:108, src/app/main/ui/settings/subscription.cljs:56, src/app/main/ui/settings/subscription.cljs:256, src/app/main/ui/settings/subscription.cljs:299
|
||||
msgid "subscription.settings.unlimited"
|
||||
msgstr "Unlimited"
|
||||
|
@ -4578,10 +4573,10 @@ msgid "subscription.settings.unlimited.bill"
|
|||
msgstr "Factura mensual limitada"
|
||||
|
||||
#: src/app/main/ui/settings/subscription.cljs:250, src/app/main/ui/settings/subscription.cljs:261, src/app/main/ui/settings/subscription.cljs:306
|
||||
msgid "subscription.settings.unlimited.storage"
|
||||
msgid "subscription.settings.unlimited.storage-autosave"
|
||||
msgstr ""
|
||||
"25 GB de almacenamiento y 30 días de autoguardado de versiones y copias de "
|
||||
"seguridad de archivos"
|
||||
"25 GB de almacenamiento y 30 días de autoguardado de versiones y recuperación "
|
||||
"de archivos"
|
||||
|
||||
#: src/app/main/ui/settings/subscription.cljs:248, src/app/main/ui/settings/subscription.cljs:259, src/app/main/ui/settings/subscription.cljs:304
|
||||
msgid "subscription.settings.unlimited.teams"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue