From cffd4207c893575165a2c79f73605669099e962e Mon Sep 17 00:00:00 2001 From: piyumaldk Date: Tue, 19 Nov 2024 14:10:23 +0530 Subject: [PATCH 01/23] Load applications from mock data --- mock/Applications/applications.json | 40 ++++++ src/pages/applications/page.hbs | 4 + .../partials/applications-listing.hbs | 114 ++++++++++++++++++ 3 files changed, 158 insertions(+) create mode 100644 mock/Applications/applications.json create mode 100644 src/pages/applications/page.hbs create mode 100644 src/pages/applications/partials/applications-listing.hbs diff --git a/mock/Applications/applications.json b/mock/Applications/applications.json new file mode 100644 index 0000000..29e443a --- /dev/null +++ b/mock/Applications/applications.json @@ -0,0 +1,40 @@ +{ + "count": 2, + "list": [ + { + "applicationId": "49231188-5d7e-46e1-9651-7e7905d4d836", + "name": "DefaultApplication", + "throttlingPolicy": "Unlimited", + "description": "This is the default application", + "status": "APPROVED", + "groups": [], + "subscriptionCount": 0, + "attributes": {}, + "owner": "admin", + "tokenType": "JWT", + "createdTime": "1731993412405", + "updatedTime": "1731993412405" + }, + { + "applicationId": "554791bd-783e-45cb-b77c-88dba3766365", + "name": "New Application", + "throttlingPolicy": "10PerMin", + "description": "This is a sample description", + "status": "APPROVED", + "groups": [], + "subscriptionCount": 0, + "attributes": {}, + "owner": "admin", + "tokenType": "JWT", + "createdTime": "1731994070857", + "updatedTime": "1731994070857" + } + ], + "pagination": { + "offset": 0, + "limit": 25, + "total": 2, + "next": "", + "previous": "" + } +} \ No newline at end of file diff --git a/src/pages/applications/page.hbs b/src/pages/applications/page.hbs new file mode 100644 index 0000000..9c01b25 --- /dev/null +++ b/src/pages/applications/page.hbs @@ -0,0 +1,4 @@ +
+ {{> applications-listing }} + {{> community }} +
\ No newline at end of file diff --git a/src/pages/applications/partials/applications-listing.hbs b/src/pages/applications/partials/applications-listing.hbs new file mode 100644 index 0000000..7ca9ba9 --- /dev/null +++ b/src/pages/applications/partials/applications-listing.hbs @@ -0,0 +1,114 @@ +
+
+
+
+
+

Explore + best APIs + and join us in building innovative applications. +

+
+
+

+ Utilize our APIs to automate processes, drive innovation, and reach + millions of customers.

+
+
+
+ + +
+
+
+
+
+
+
+
+
Filter By
+
+
Explore
+ +
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+ +
+
Category
+ +
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+
+
+ {{#applicationsMetadata}} +
+
+
{{name}}
+

V {{throttlingPolicy}}

+

{{description}}

+ {{status}} +

{{owner}}

+
+
+
+
+ Overview +
+
+
+
+ {{/applicationsMetadata}} +
+
+
+
+
+
+
\ No newline at end of file From 0bd9c64794bb28652d7409531d833806d02aef0b Mon Sep 17 00:00:00 2001 From: piyumaldk Date: Tue, 19 Nov 2024 15:53:34 +0530 Subject: [PATCH 02/23] Add new styling and search function --- .../partials/applications-listing.hbs | 165 ++++++-------- src/partials/header.hbs | 2 +- src/styles/applications-listing.css | 208 ++++++++++++++++++ src/styles/main.css | 1 + 4 files changed, 278 insertions(+), 98 deletions(-) create mode 100644 src/styles/applications-listing.css diff --git a/src/pages/applications/partials/applications-listing.hbs b/src/pages/applications/partials/applications-listing.hbs index 7ca9ba9..2d737cd 100644 --- a/src/pages/applications/partials/applications-listing.hbs +++ b/src/pages/applications/partials/applications-listing.hbs @@ -1,114 +1,85 @@
-
-
-
-
-

Explore - best APIs - and join us in building innovative applications. +
+
+
+
+

Subscribe to + APIs + by creating applications.

-
-

- Utilize our APIs to automate processes, drive innovation, and reach - millions of customers.

+
+

Create, manage, or remove applications here.

- +
-
-
-
-
Filter By
-
-
Explore
- -
-
-
- - -
-
-
-
- - -
-
-
-
- - -
-
-
- -
-
Category
- -
-
-
- - -
-
-
-
- - +
+
+ {{#applicationsMetadata}} +
+
+
+ {{name}} +
+

{{description}}

+
+

+ Created: {{createdTime}} +

+

+ Updated: {{updatedTime}} +

+

+ Owner: {{owner}} +

+

+ Subscriptions: {{subscriptionCount}} +

+

+ Throttling Policy: {{throttlingPolicy}} +

+ {{status}}
-
-
-
- - +
+ +
-
-
-
-
-
-
- {{#applicationsMetadata}} -
-
-
{{name}}
-

V {{throttlingPolicy}}

-

{{description}}

- {{status}} -

{{owner}}

-
-
-
-
- Overview -
-
-
-
- {{/applicationsMetadata}} -
-
-
+ {{/applicationsMetadata}}
-
-

\ No newline at end of file + + + + + diff --git a/src/partials/header.hbs b/src/partials/header.hbs index d49535c..51558ce 100644 --- a/src/partials/header.hbs +++ b/src/partials/header.hbs @@ -10,7 +10,7 @@ APIs {{!-- Pricing Get started - Application --}} + Applications {{#if profile}} -
-
- {{#applicationsMetadata}} -
-
-
- {{name}} -
-

{{description}}

-
-

- - Created: - {{createdTime}} -

-

- - Updated: - {{updatedTime}} -

-

- - Owner: - {{owner}} -

-

- - Subscriptions: - {{subscriptionCount}} -

-

- - Throttling Policy: - {{throttlingPolicy}} -

- {{status}} -
-
- - +
+
+
+
+ {{#applicationsMetadata}} +
+
+
+ {{name}} +
+ +
+
+ {{status}} + Owner: {{owner}} +
+
+ +
+

+ + Subscriptions: + {{subscriptionCount}} +

+

+ + Throttling Policy: + {{throttlingPolicy}} +

+ +
+
+ + +
+
-
+ {{/applicationsMetadata}}
- {{/applicationsMetadata}} +
@@ -91,8 +87,8 @@ \ No newline at end of file + \ No newline at end of file diff --git a/src/styles/applications-listing.css b/src/styles/applications-listing.css index 8fde254..7814c01 100644 --- a/src/styles/applications-listing.css +++ b/src/styles/applications-listing.css @@ -91,22 +91,27 @@ body { top: -2px; } -.applicationlist-container { - padding: 10px 20px; +.applicationspage-container { + padding: 10px 65px; margin-top: 45px; - gap: 20px; - grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); + margin-bottom: 20px; +} + +.applicationlist-container { + display: flex; + flex-wrap: wrap; + justify-content: left; } .application-card { display: flex; flex-direction: column; border: 1px solid var(--border-colour-secondary); - border-radius: 8px; - background-color: white; - padding: 15px; + border-radius: 12px; + background-color: var(--light-bg-color); + padding: 20px; height: 100%; - box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1); + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); transition: transform 0.3s ease, box-shadow 0.3s ease; } @@ -124,7 +129,6 @@ body { .application-card-title { font-size: 18px; - font-weight: bold; color: var(--main-text-color); margin-bottom: 10px; } @@ -135,7 +139,7 @@ body { } .application-name-link:hover { - text-decoration: underline; + color: var(--warning-color); } .application-card-description { @@ -185,6 +189,25 @@ body { color: var(--warning-color); } +.applicationsbtn-container { + margin: 20px; + width: 100%; +} + +.applicationsaddbtn-primary { + padding: 5px 30px; + border-radius: 20px; + font-size: 14px; + background-color: transparent; + color: var(--border-colour-primary); + border: 1px solid var(--border-colour-primary); +} + +.applicationsaddbtn-primary:hover { + background-color: var(--primary-color); + color: var(--font-colour-primary); +} + @media (max-width: 1200px) { .col-lg-2 { flex: 0 0 33.3333%; From 0f896862a4eb1876a5d716dc1a7fcae6b9b06fa6 Mon Sep 17 00:00:00 2001 From: piyumaldk Date: Thu, 21 Nov 2024 14:24:45 +0530 Subject: [PATCH 06/23] Fix the compilation bug --- src/partials/header.hbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/partials/header.hbs b/src/partials/header.hbs index 51558ce..a361e23 100644 --- a/src/partials/header.hbs +++ b/src/partials/header.hbs @@ -9,7 +9,7 @@ {{#if profile}} From f72e8617a9f14a52035fffef5482f961bfe05ade Mon Sep 17 00:00:00 2001 From: piyumaldk Date: Thu, 21 Nov 2024 15:07:27 +0530 Subject: [PATCH 07/23] Add Default Application Mock Data --- mock/Applications/DefaultApplication.json | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 mock/Applications/DefaultApplication.json diff --git a/mock/Applications/DefaultApplication.json b/mock/Applications/DefaultApplication.json new file mode 100644 index 0000000..57341b0 --- /dev/null +++ b/mock/Applications/DefaultApplication.json @@ -0,0 +1,17 @@ +{ + "applicationId": "49231188-5d7e-46e1-9651-7e7905d4d836", + "name": "DefaultApplication", + "throttlingPolicy": "Unlimited", + "description": "This is the default application", + "tokenType": "JWT", + "status": "APPROVED", + "groups": [], + "subscriptionCount": 1, + "keys": [], + "attributes": {}, + "subscriptionScopes": [], + "owner": "admin", + "hashEnabled": false, + "createdTime": "1731993412405", + "updatedTime": "1731993412405" +} \ No newline at end of file From ad1091069e836d7cf0e6176fa985d89377b730f8 Mon Sep 17 00:00:00 2001 From: piyumaldk Date: Thu, 21 Nov 2024 15:08:47 +0530 Subject: [PATCH 08/23] Move Default Application Mock Data --- .../Applications/{ => DefaultApplication}/DefaultApplication.json | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename mock/Applications/{ => DefaultApplication}/DefaultApplication.json (100%) diff --git a/mock/Applications/DefaultApplication.json b/mock/Applications/DefaultApplication/DefaultApplication.json similarity index 100% rename from mock/Applications/DefaultApplication.json rename to mock/Applications/DefaultApplication/DefaultApplication.json From 5724dfed90ecf444ea089373e0447b647e6a2400 Mon Sep 17 00:00:00 2001 From: piyumaldk Date: Fri, 22 Nov 2024 13:41:41 +0530 Subject: [PATCH 09/23] Remove tech pages pages and add border color --- src/pages/applications/page.hbs | 4 - .../partials/applications-listing.hbs | 104 -------- src/styles/applications-listing.css | 233 ------------------ src/styles/main.css | 2 +- 4 files changed, 1 insertion(+), 342 deletions(-) delete mode 100644 src/pages/applications/page.hbs delete mode 100644 src/pages/applications/partials/applications-listing.hbs delete mode 100644 src/styles/applications-listing.css diff --git a/src/pages/applications/page.hbs b/src/pages/applications/page.hbs deleted file mode 100644 index 9c01b25..0000000 --- a/src/pages/applications/page.hbs +++ /dev/null @@ -1,4 +0,0 @@ -
- {{> applications-listing }} - {{> community }} -
\ No newline at end of file diff --git a/src/pages/applications/partials/applications-listing.hbs b/src/pages/applications/partials/applications-listing.hbs deleted file mode 100644 index 31fe165..0000000 --- a/src/pages/applications/partials/applications-listing.hbs +++ /dev/null @@ -1,104 +0,0 @@ -
-
-
-
-
-

Subscribe to - APIs - by creating applications. -

-
-
-

Create, manage, or remove applications here.

-
-
-
- - -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
- {{#applicationsMetadata}} -
-
-
- {{name}} -
- -
-
- {{status}} - Owner: - {{owner}} -
-
- -
-

- - Subscriptions: - {{subscriptionCount}} -

-

- - Throttling Policy: - {{throttlingPolicy}} -

- -
-
- - -
-
-
- {{/applicationsMetadata}} -
-
-
-
-
-
-
\ No newline at end of file diff --git a/src/styles/applications-listing.css b/src/styles/applications-listing.css deleted file mode 100644 index 7814c01..0000000 --- a/src/styles/applications-listing.css +++ /dev/null @@ -1,233 +0,0 @@ -body { - background-color: var(--main-bg-color); -} - -.hero-section-applicationlisting { - display: flex; - justify-content: center; - align-items: center; - padding: 10px 0; - background-color: var(--primary-color); - height: auto; -} - -.applicationlist-hero-container { - width: 100%; - max-width: 1000px; - text-align: center; - margin-top: 30px; -} - -.applicationlist-hero-content h1, -.applicationlist-hero-content p, -.applicationlist-hero-content span { - color: var(--font-colour-primary); -} - -.applicationlist-hero-content h1 { - font-size: 35px; - font-weight: bold; -} - -.applicationlist-hero-content p { - font-size: 14px; - line-height: 24px; -} - -.applicationlist-hero-header { - max-width: 800px; -} -.applicationlist-hero-content span { - font-size: 35px; - margin-bottom: 20px; - color: var(--light-color); -} - -.applicationlist-hero-content { - margin: 40px 0; - text-align: center; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; -} - -.search-container { - display: flex; - justify-content: center; - margin-top: 20px; -} - -.search-input { - display: flex; - align-items: center; - background-color: transparent; - border: 1px solid var(--border-colour-secondary); - padding: 10px 15px; - border-radius: 25px; - width: 100%; - height: 40px; -} - -.search-input input { - border: none; - outline: none; - width: 100%; - margin-left: 10px; - font-size: 14px; - background-color: transparent; - color: var(--main-bg-color); -} - -#query::placeholder { - color: var(--main-bg-color); - opacity: 0.6; -} - -.bi-search { - color: var(--main-bg-color); - font-size: 20px; - position: relative; - top: -2px; -} - -.applicationspage-container { - padding: 10px 65px; - margin-top: 45px; - margin-bottom: 20px; -} - -.applicationlist-container { - display: flex; - flex-wrap: wrap; - justify-content: left; -} - -.application-card { - display: flex; - flex-direction: column; - border: 1px solid var(--border-colour-secondary); - border-radius: 12px; - background-color: var(--light-bg-color); - padding: 20px; - height: 100%; - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); - transition: transform 0.3s ease, box-shadow 0.3s ease; -} - -.application-card:hover { - transform: translateY(-5px); - box-shadow: 0px 6px 15px rgba(0, 0, 0, 0.2); -} - -.application-card-body { - display: flex; - flex-direction: column; - justify-content: space-between; - height: 100%; -} - -.application-card-title { - font-size: 18px; - color: var(--main-text-color); - margin-bottom: 10px; -} - -.application-name-link { - color: var(--primary-color); - text-decoration: none; -} - -.application-name-link:hover { - color: var(--warning-color); -} - -.application-card-description { - font-size: 14px; - color: var(--secondary-text-color); - margin-bottom: 15px; -} - -.application-card-meta p { - display: flex; - align-items: center; - font-size: 12px; - color: var(--secondary-text-color); - margin: 5px 0; -} - -.application-card-meta i { - margin-right: 8px; - color: var(--primary-color); -} - -.badge-custom1 { - padding: 5px 10px; - border-radius: 12px; - font-size: 12px; - font-weight: bold; -} - -.application-card-actions { - display: flex; - justify-content: flex-end; - margin-top: 10px; -} - -.btn-icon { - display: inline-flex; - align-items: center; - justify-content: center; - border: none; - background-color: transparent; - color: var(--primary-color); - font-size: 18px; - cursor: pointer; -} - -.btn-icon:hover { - color: var(--warning-color); -} - -.applicationsbtn-container { - margin: 20px; - width: 100%; -} - -.applicationsaddbtn-primary { - padding: 5px 30px; - border-radius: 20px; - font-size: 14px; - background-color: transparent; - color: var(--border-colour-primary); - border: 1px solid var(--border-colour-primary); -} - -.applicationsaddbtn-primary:hover { - background-color: var(--primary-color); - color: var(--font-colour-primary); -} - -@media (max-width: 1200px) { - .col-lg-2 { - flex: 0 0 33.3333%; - max-width: 33.3333%; - } -} - -@media (max-width: 768px) { - .col-lg-2, - .col-md-4 { - flex: 0 0 50%; - max-width: 50%; - } -} - -@media (max-width: 576px) { - .col-lg-2, - .col-md-4, - .col-sm-6 { - flex: 0 0 100%; - max-width: 100%; - } -} diff --git a/src/styles/main.css b/src/styles/main.css index 3a72232..2a71142 100644 --- a/src/styles/main.css +++ b/src/styles/main.css @@ -9,7 +9,6 @@ @import '/styles/documentation-banner.css'; @import '/styles/community.css'; @import '/styles/api-listing.css'; -@import '/styles/applications-listing.css'; @import '/styles/pagination.css'; @import '/styles/api-detail-banner.css'; @import '/styles/tryout-banner.css'; @@ -34,6 +33,7 @@ --border-colour-primary: #1a73e8; --border-colour-secondary: #ffffff; --notselect-star-color: #bebec0; + --border-color: #ddd; --font-family-sans: "Poppins", sans-serif; --font-family-serif: "Sofia Sans", serif; From 2a78f225a19d6dae0ae32f446b9f81a4f5882c2d Mon Sep 17 00:00:00 2001 From: piyumaldk Date: Mon, 2 Dec 2024 12:23:33 +0530 Subject: [PATCH 10/23] Throttle Policy Mock --- mock/Applications/throttlingPolicies.json | 124 ++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 mock/Applications/throttlingPolicies.json diff --git a/mock/Applications/throttlingPolicies.json b/mock/Applications/throttlingPolicies.json new file mode 100644 index 0000000..0891a6e --- /dev/null +++ b/mock/Applications/throttlingPolicies.json @@ -0,0 +1,124 @@ +{ + "count": 4, + "list": [ + { + "name": "10PerMin", + "description": "Allows 10 request per minute", + "policyLevel": "APPLICATION", + "attributes": {}, + "requestCount": 10, + "dataUnit": null, + "unitTime": 1, + "timeUnit": "min", + "rateLimitCount": 0, + "rateLimitTimeUnit": null, + "quotaPolicyType": "REQUESTCOUNT", + "tierPlan": null, + "stopOnQuotaReach": true, + "monetizationAttributes": { + "billingType": null, + "billingCycle": null, + "fixedPrice": null, + "pricePerRequest": null, + "currencyType": null + }, + "throttlingPolicyPermissions": { + "type": "ALLOW", + "roles": [ + "Internal/everyone" + ] + } + }, + { + "name": "20PerMin", + "description": "Allows 20 request per minute", + "policyLevel": "APPLICATION", + "attributes": {}, + "requestCount": 20, + "dataUnit": null, + "unitTime": 1, + "timeUnit": "min", + "rateLimitCount": 0, + "rateLimitTimeUnit": null, + "quotaPolicyType": "REQUESTCOUNT", + "tierPlan": null, + "stopOnQuotaReach": true, + "monetizationAttributes": { + "billingType": null, + "billingCycle": null, + "fixedPrice": null, + "pricePerRequest": null, + "currencyType": null + }, + "throttlingPolicyPermissions": { + "type": "ALLOW", + "roles": [ + "Internal/everyone" + ] + } + }, + { + "name": "50PerMin", + "description": "Allows 50 request per minute", + "policyLevel": "APPLICATION", + "attributes": {}, + "requestCount": 50, + "dataUnit": null, + "unitTime": 1, + "timeUnit": "min", + "rateLimitCount": 0, + "rateLimitTimeUnit": null, + "quotaPolicyType": "REQUESTCOUNT", + "tierPlan": null, + "stopOnQuotaReach": true, + "monetizationAttributes": { + "billingType": null, + "billingCycle": null, + "fixedPrice": null, + "pricePerRequest": null, + "currencyType": null + }, + "throttlingPolicyPermissions": { + "type": "ALLOW", + "roles": [ + "Internal/everyone" + ] + } + }, + { + "name": "Unlimited", + "description": "Allows unlimited requests", + "policyLevel": "APPLICATION", + "attributes": {}, + "requestCount": 2147483647, + "dataUnit": null, + "unitTime": 0, + "timeUnit": "ms", + "rateLimitCount": 0, + "rateLimitTimeUnit": null, + "quotaPolicyType": null, + "tierPlan": "FREE", + "stopOnQuotaReach": true, + "monetizationAttributes": { + "billingType": null, + "billingCycle": null, + "fixedPrice": null, + "pricePerRequest": null, + "currencyType": null + }, + "throttlingPolicyPermissions": { + "type": "ALLOW", + "roles": [ + "Internal/everyone" + ] + } + } + ], + "pagination": { + "offset": 0, + "limit": 25, + "total": 4, + "next": "", + "previous": "" + } +} \ No newline at end of file From ca9a13ad0156f4d82ad8d1d7353acb229d74297e Mon Sep 17 00:00:00 2001 From: Divya Premanantha Date: Tue, 3 Dec 2024 19:41:59 +0530 Subject: [PATCH 11/23] Add readme --- README.md | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..58bef9b --- /dev/null +++ b/README.md @@ -0,0 +1,40 @@ +# Devportal Developer App + +## Steps to Set Up the Project + +**Fork and Clone the Repository** + - Fork the repository to your GitHub account. + - Clone the repository using: + ```bash + git clone https://github.com/wso2/api-developer-portal.git + ``` + +**Install Dependencies** + - Navigate to the project directory and execute: + ```bash + npm install + ``` + +**Start the Project** + + - To start the project and explore with mock data, run the following command. + ```bash + npm start + ``` + +## Project Structure and Layout + +**Project Structure** + - The `src` folder contains the page layout and content. + - The `/src/layout` folder includes the main layout of the dev portal. + - Other pages inherit this layout. + - The `/src/pages` folder holds the content for the pages. + - The `/src/partials` folder holds the common content for the pages. + - The header and footer are injected as partials into the layout. + - The `/src/images` folder contains the images. + - The `/src/styles` folder contains the styles applied for each component. + - The `mock` directory includes the mock API information. + +**Mock APIs** + - Mock APIs are displayed to define the structure. + - In a production scenario, these will be replaced by actual published APIs. \ No newline at end of file From ce9a3893f0714a7df4ee72d6a71a7a15530b51c8 Mon Sep 17 00:00:00 2001 From: Divya Premanantha Date: Thu, 5 Dec 2024 13:14:35 +0530 Subject: [PATCH 12/23] Add subscription changes --- .../partials/api-detail-banner.hbs | 1 + .../partials/subscription-plans.hbs | 21 +++++++ src/partials/header.hbs | 1 + src/styles/main.css | 1 + src/styles/subscription.css | 62 +++++++++++++++++++ 5 files changed, 86 insertions(+) create mode 100644 src/pages/api-landing/partials/subscription-plans.hbs create mode 100644 src/styles/subscription.css diff --git a/src/pages/api-landing/partials/api-detail-banner.hbs b/src/pages/api-landing/partials/api-detail-banner.hbs index 9a7dc55..f05c36a 100644 --- a/src/pages/api-landing/partials/api-detail-banner.hbs +++ b/src/pages/api-landing/partials/api-detail-banner.hbs @@ -25,6 +25,7 @@ {{else}} Download {{/in}} + Subscribe
diff --git a/src/pages/api-landing/partials/subscription-plans.hbs b/src/pages/api-landing/partials/subscription-plans.hbs new file mode 100644 index 0000000..0aec0ed --- /dev/null +++ b/src/pages/api-landing/partials/subscription-plans.hbs @@ -0,0 +1,21 @@ +
+
+
+

Available Subscription Plans

+
+
+ {{#each subscriptionPlans}} +
+
+
+
{{name}}
+

Tier plan: {{tierPlan}}

+

{{description}}

+ Subscribe +
+
+
+ {{/each}} +
+
\ No newline at end of file diff --git a/src/partials/header.hbs b/src/partials/header.hbs index d49535c..5feaf82 100644 --- a/src/partials/header.hbs +++ b/src/partials/header.hbs @@ -8,6 +8,7 @@ {{#if profile}} {{#if profile}}