Commit Graph

258 Commits

Author SHA1 Message Date
Rish
c0fa057533 v0.6.3 2020-06-12 18:53:06 +05:30
Rish
3a4c93b82d Fixed default page value
no issue

- Fixes Incorrect assignment of default page in case of missing data set
2020-06-12 18:52:05 +05:30
Rish
a873554be3 v0.6.2 2020-06-12 18:48:16 +05:30
Rish
3e06a71dc8 Fixed empty page from custom trigger button
no issue

- Custom trigger button with empty page value was not setting the default page
- Adds default page in case of no value
2020-06-12 18:47:29 +05:30
Rish
e376c60764 v0.6.1 2020-06-12 17:50:19 +05:30
Rish
432caae79c Updated site url to read from ghost:site meta tag on theme
closes https://github.com/TryGhost/members.js/issues/39

- Script needs correct ghost site url to initialize correct API endpoints for fetching site/members data
- `window.location.origin` won't work as correct ghost site url in all cases, specially for sites using subdirectory setup
- New meta tag `ghost:site` is inserted on themes with correct `siteUrl`, which is used to initialize api
2020-06-12 16:59:44 +05:30
Rish
8df822d317 Refactered App structure and naming
no issue

- Moved `ParentContainer.js` to redundant empty top level `App.js` to remove extra nesting and improved naming
- Renamed `ParentContext` to `AppContext` and exported as default
- Fixed imports in all the components and test-utils with new structure
- Passed `siteUrl` to api setup from main App to allow easier configuration
- Updated App tests
2020-06-12 14:19:08 +05:30
Renovate Bot
1fc8f86507 Update dependency @testing-library/user-event to v11.4.2 2020-06-11 17:19:51 +00:00
Renovate Bot
a83ae73578 Update dependency @testing-library/jest-dom to v5.10.0 2020-06-11 15:31:39 +00:00
Rish
0baa47da31 v0.6.0 2020-06-11 18:37:18 +05:30
Rish
9f6450b2fc Allowed multiple custom trigger buttons with start page
closes https://github.com/TryGhost/members.js/issues/45

- Allows multiple trigger buttons on the page with data attribute `data-members-trigger-button`
- Allows passing page value to custom trigger button to show the popup on specified page, like signup
- Removes event handlers on unmount
2020-06-11 15:38:37 +05:30
Renovate Bot
472af65f12 Update dependency @testing-library/user-event to v11.4.1 2020-06-10 20:17:38 +00:00
Rish
85889491cf Added check for stripe configuration in UI flows
closes https://github.com/TryGhost/members.js/issues/43

- Handle plans/payment flow based on new `isStripeConfigured` flag in members site data - Added in 82cf095600
- Hides plan update/subscribe/paid-signup flows if stripe is not setup
2020-06-10 21:18:00 +05:30
Rish
6623235bb9 Handled allowSelfSignup option for allowed plans
refs https://github.com/TryGhost/members.js/issues/43

- If the self signup flag is off in member settings, removes the free plan option from Signup flow
2020-06-10 19:52:38 +05:30
Rish
66479c1990 Added error handling for checkout/signup failure
closes https://github.com/TryGhost/members.js/issues/38

- Added error state to signup action button in case of action failure like checkout session rejection
- Checkout session rejection was previously incorrectly timing out and returning 200
2020-06-10 18:05:08 +05:30
Rish
e538f9b363 Removed error state action reset
no issue

- Don't reset the button/error state in case of a failure, similar behavior as Ghost Admin
2020-06-10 18:05:08 +05:30
Rish
9ab1ef3dc3 Added retry option to action button
no issue

- Allows updating action buttons to use error states to update background color
2020-06-10 18:05:08 +05:30
Renovate Bot
2955c7ee20 Update dependency @testing-library/user-event to v11.4.0 2020-06-10 05:20:49 +00:00
Renovate Bot
c3f8a529e8 Update dependency @testing-library/user-event to v11.3.2 2020-06-09 14:21:44 +00:00
Renovate Bot
4d7b8914be Update dependency @testing-library/user-event to v11.3.1 2020-06-08 19:39:44 +00:00
Rish
0ff2f9df9e Fixed lint in build script
no issue
2020-06-07 01:26:58 +05:30
Rish
aa228a8df2 Updated tests structure
no issue

- Use jsdom-fourteen to allow waitFor tests from testing lib - https://github.com/facebook/create-react-app/issues/7491#issuecomment-534832697
- Updated test-utils to pass context
- Added tests for account plan and profile using new test options
2020-06-07 01:26:41 +05:30
Rish
3c734af54e Disabled plan checkout without plan selection
no issue

- Disable plan checkout step if no plan is selected
2020-06-07 01:25:20 +05:30
Renovate Bot
70c2bd9a90 Update dependency @testing-library/react to v10 2020-06-07 01:06:49 +05:30
Renovate Bot
67c42b3277 Update dependency @testing-library/user-event to v11 2020-06-07 01:05:51 +05:30
Renovate Bot
08a809f156 Update dependency @testing-library/jest-dom to v5 2020-06-07 01:04:57 +05:30
Rish
0d50b68596 Updated publish note in readme
no issue

- Removes redundant manual version update line as `yarn ship` shows a prompt
2020-06-06 20:18:23 +05:30
Rish
4689061d49 Added custom trigger button note to readme
no issue

- Adds note on how custom trigger button works for theme devs
2020-06-06 20:10:26 +05:30
Rish
31f04851e5 Updated prop types for trigger button
refs https://github.com/TryGhost/members.js/issues/5

- Only place where we pass down props to check popup state
- Adds propType for popup state
2020-06-03 10:58:38 +05:30
Rish
4d94188d1c v0.5.1 2020-06-03 10:55:13 +05:30
Rish
e8a7f6aec9 Updated save state handling for button
closes https://github.com/TryGhost/members.js/issues/34

- Updates save state handling for button to show intermediary Saved state before resetting
- Updates labels based on action running state
2020-06-03 10:50:14 +05:30
Rish
9387cf2131 v0.5.0 2020-06-02 00:16:29 +05:30
Rish
535f9070bc Enabled data attribute handling for existing members script feature
no issue

- This was disabled before last release to not overlap with existing member's script in latest version
- Enabled again to handle data attributes in a theme same as existing script
2020-05-28 20:41:59 +05:30
Rishabh Garg
0db1874095 Added email change flow for logged-in member (#33)
refs https://github.com/TryGhost/members.js/issues/30
Depends on https://github.com/TryGhost/Members/pull/161

- Calls send magic link API with old email option when a member updates their email address
- Allows member to update their email address by clicking on magic link on new email address
2020-05-28 20:39:27 +05:30
Rish
bbeffb04be v0.4.1 2020-05-28 17:32:48 +05:30
Rish
565e9dfd73 Disabled data attribute handling
no issue

- Disables data attribute handling(existing members.js functionality) as it can attach handlers twice if loaded together with existing members.js
- Can be easily enabled once the new script is loaded from core
2020-05-28 17:32:07 +05:30
Rish
47b6415c93 Updated contact support button to disabled look
no issue

- No functionality is currently attached to contact support so greying out, will enable once its updated
2020-05-28 17:28:27 +05:30
Rish
f0d6320da9 Removed delete account button from profile page
no issue

- Cleanup: We currently don't have any functionality hooked to delete account button
2020-05-28 17:24:19 +05:30
Rish
503cb53f4f Removed email from update member action
no issue

- Removes email from update member action as it cannot be modified directly
2020-05-28 17:23:48 +05:30
Rish
b361754ea9 Cleaned action running states
no issue

- Adds running states for action buttons on plan and profile pages
2020-05-28 17:21:46 +05:30
Rish
a9a083f2f1 Cleanup
no issue

- Extract root div id so its easy to change it in one place in future
- Add stripe load method
- Extract all initial non-ui handling to setup method
2020-05-27 18:04:06 +05:30
Rish
9cf8e0e435 Added stripe load method
no issue

- Load Stripe script if not already loaded on page
- Many members.js features rely on Stripe script to be loaded on the page to allow checkout/billing updates etc.
2020-05-27 18:03:12 +05:30
Rish
fc75d9881d Initialized existing members.js data attribute handling
refs https://github.com/TryGhost/members.js/issues/32

- Inits data attribute handling from the copied over members.js file from core
- Uses `window.location.origin` as site url for api calls in data attribute handling
2020-05-27 17:32:41 +05:30
Rish
514e022520 Copied existing public members.js script from core
refs https://github.com/TryGhost/members.js/issues/32

- Copies over existing members.js script from core
- Handles members functionality in a theme using data-attributes assinged
- Only modification is tto use `siteUrl` value passed to the function for API calls
2020-05-27 17:32:41 +05:30
Rish
bb7200dabf Fixed lint warnings
no issue
2020-05-27 17:11:43 +05:30
Rish
5640137bd3 Renamed update plan action to update subscription
no issue

- Renames update plan action to update subscription as it can be also used to cancel current subscription
- Pass cancelAtPeriodEnd option to update subscription API call
2020-05-26 20:40:54 +05:30
Renovate Bot
838c440a5a Update dependency eslint-plugin-ghost to v1.5.0 2020-05-25 10:17:09 +00:00
Rish
25269953a2 v0.4.0 2020-05-22 15:47:14 +05:30
Rish
97319dee7c Redirected member to home after plan update
no issue

- Takes member to home page popup on plan update
- Fetches new member session data via API to show updated plan
2020-05-22 15:44:35 +05:30
Rish
dd2ad02e68 Refactored profile page for free/paid member
no issue

- Updates profile page for free/paid member to render newsletter based on context
- Disable editing email field till we have the full flow for it
2020-05-22 15:43:24 +05:30
Rish
7cc028ba0d Added default plan for paid member
no issue

- Selects member's current plan by default on plan selection page
2020-05-22 15:41:58 +05:30
Rish
11e1b84298 Refactored account home page to dynamically load for free/paid
no issue

- Updates style based on context
- Combines account home page for free/paid members to load based on member status
2020-05-22 15:41:27 +05:30
Rish
f94f16a90d Combined account home pages in single file
no issue

- Cleanup: Combines home page for both free and paid member in single file for cleaner split
2020-05-22 12:38:06 +05:30
Rish
d8072971b5 Updated newsletter subscription label
no issue

- Updates newsletter subscription label based on current state on profile page
2020-05-22 12:36:38 +05:30
Rish
1049955007 Removed env variable for default page
no issue

- Removes env variable which could be previously set for local development in favor of `process.env.NODE_ENV` check for development version
2020-05-22 12:35:33 +05:30
Rish
08a4611ee3 Fixed page switch message UI margin
no issue

- Adds margin for page switch message between signup/signin at bottom
2020-05-22 12:34:21 +05:30
Rish
9432e4f166 Fixed Switch element tests
no issue

- Updated attaching onToggle to correct element on switch test
2020-05-21 12:02:41 +05:30
Rish
ca0bdab60b Hooked newsletter subscription toggle to API
refs https://github.com/TryGhost/members.js/issues/20

- Allows paid/free member to update their newsletter subscription status
- Newsletter subscription status is immediately updated on toggle
2020-05-21 11:54:44 +05:30
Rish
a859da1aa4 Updated magic link api to send member name
refs https://github.com/TryGhost/members.js/issues/26

- Includes member name in the magic link creation API which can be later read from token and stored on signup.
2020-05-21 09:05:41 +05:30
Rish
680572f499 Added profile update action from profile page
refs https://github.com/TryGhost/members.js/issues/20

- Updates profile update action name in Profile Page
- Adds new action to update member info from profile page if member is logged in
2020-05-20 00:14:22 +05:30
Rish
197be15e63 Renamed plan -> planName for update subscription api call
refs https://github.com/TryGhost/members.js/issues/20

- API uses planName for update subscription api call
2020-05-20 00:14:22 +05:30
Rish
2b34ee5c28 Updated paid signup action of member to include name
refs https://github.com/TryGhost/members.js/issues/29

- Uses updated API endpoint for checkout to pass member name in stripe checkout session metadata
2020-05-20 00:14:21 +05:30
Rish
43106c037e Added api to update member's profile info
refs https://github.com/TryGhost/members.js/issues/20

- Uses new member update endpoint to update logged-in member's profile info
- Member can update their name, email and newsletter subscription status
2020-05-20 00:14:21 +05:30
Rish
f257a35dce Updated checkout plan api to include member name in metadata
refs https://github.com/TryGhost/members.js/issues/29

- Create stripe checkout session in Ghost now supports passing metadata for custom info like name
- This allows storing member name post-signup after payment through stripe checkout is completed
2020-05-20 00:14:21 +05:30
Rish
b865d002a9 Added update subscription API
refs https://github.com/TryGhost/members.js/issues/20

- Adds update subscription api for member
- API allows updating plan for a particular subscription for logged-in member
2020-05-20 00:14:21 +05:30
Renovate Bot
f59d8213f6 Update dependency eslint-plugin-ghost to v1.4.1 2020-05-11 10:15:34 +00:00
Rish
748f56ee47 Added update plan setup for paid members
refs https://github.com/TryGhost/members.js/issues/20

- Adds update plan action for paid members to allow switching plans
2020-05-08 23:00:32 +05:30
Rish
3f738b1088 Added edit billing flow to paid account home
refs https://github.com/TryGhost/members.js/issues/20

- Opens stripe checkout update session from paid account area for a member
- Allows paid member to update their stripe billing info
2020-05-08 18:33:36 +05:30
Rish
e185c1ee47 Added edit stripe billing api method
refs https://github.com/TryGhost/members.js/issues/20

- Adds new editBilling method for stripe update billing info checkout flow
2020-05-08 18:32:22 +05:30
Rish
5a1fa6fdf4 Added edit profile page UI for paid member
refs https://github.com/TryGhost/members.js/issues/20

- Connects account profile page to edit button for paid member's account home area
2020-05-07 21:11:17 +05:30
Rish
694ec683fe Added free account home to use account profile
refs https://github.com/TryGhost/members.js/issues/20

- Clicking settings on free member's account home now takes them to profile page
2020-05-07 21:04:31 +05:30
Rish
fe1cb02203 Removed default margin style for Button component
no issue

- Adding default margin for action button can cause unwanted behavior where margin needs to be avoided.
- Allow higher level components to directly add margin if needed
2020-05-07 21:03:08 +05:30
Rish
12ac303fb2 Added profile page UI
refs https://github.com/TryGhost/members.js/issues/20

- Adds v1 for account profile page for both free and paid members
2020-05-07 18:06:29 +05:30
Renovate Bot
4078483bb7 Update dependency eslint-plugin-ghost to v1.4.0 2020-05-06 18:15:04 +00:00
Rish
8c42813666 v0.3.3 2020-05-01 23:20:53 +05:30
Rish
e8b25fc6e4 Fixed plan value in paid account home
no issue

- The plan value we get from API for a member is in cents and needs to be converted to dollars before showing.
2020-05-01 23:20:12 +05:30
Rish
21661e8eb8 v0.3.2 2020-05-01 22:24:44 +05:30
Rish
614c3f02fc Added fixture for paid member
no issue

- Adds fixture for paid member for local development
2020-05-01 22:23:37 +05:30
Rish
7abeb0a247 Updated local env file example to use default page
no issue

- Updates local env file to specify a default page for local UI development
2020-05-01 22:21:44 +05:30
Rish
eac5035451 Updated default page handling for paid member
refs https://github.com/TryGhost/members.js/issues/20

- Adds default page handling for paid member to open paid account area
- Refactors dev mode default page to be picked from env file if available
2020-05-01 22:21:16 +05:30
Rish
094d32a88d Added new paid account home area
refs https://github.com/TryGhost/members.js/issues/20

- Adds new page for home account area of paid member
- Updates popup modal to add paid account home page in list
2020-05-01 22:20:18 +05:30
Rish
26e1fd9dd3 Updated custom trigger button popup state classes
no issue

- Fixes custom trigger button not getting close class through any other way other than trigger
- Updates class name for open and close state by adding `gh-members-` namespace
2020-05-01 21:26:19 +05:30
Rish
2789ea3a10 v0.3.1 2020-05-01 20:58:55 +05:30
Rish
a61ce9c690 Fixed lint 2020-05-01 20:58:29 +05:30
Rish
216d8b1a14 Added subscribe navigation to account home
refs https://github.com/TryGhost/members.js/issues/20

- Adds navigation and last page setup for account home -> account plan chooser
2020-05-01 20:56:46 +05:30
Rish
767fbc1112 Cleaned up checkoutPlan action
no issue

- Removed checkoutUrls as we use default value for now
2020-05-01 20:55:20 +05:30
Rish
7dd4282520 Added back action to action list
no issue

- Adds back action to action list to allow pages to navigate back to last page
2020-05-01 20:54:48 +05:30
Rish
ec407eae5f Added new account plan page to popup modal flow
no issue

- Adds modal style and page value for new account plan page to modal
2020-05-01 20:53:48 +05:30
Rish
c6cf81664c Added new accountPlan page
no issue

- Adds new page for choosing a plan for logged in member
2020-05-01 20:52:56 +05:30
Rish
859b5502eb Refactored swtichPage action call syntax
no issue

Updates switchPage syntax to pass object so we can pass `lastPage` value as well for back button
2020-05-01 20:52:18 +05:30
Rish
4931ea68bd Updated plans section component plans prop
no issue

- Updates plans section component to take simpler plans array as prop for rendering plans
2020-05-01 20:49:35 +05:30
Rish
9cc5badd2f Added new switch component for toggle UI
no issue

- Mimics behavior and UI of toggle button in Ghost Admin
2020-05-01 20:12:13 +05:30
Rish
ee1dfbc0af v0.3.0 2020-05-01 17:18:54 +05:30
Rish
dae6d75f17 Fixed lint 2020-05-01 17:17:09 +05:30
Rish
98354e9de0 Updated script usage in readme to remove explicit init and adminUrl
refs https://github.com/TryGhost/members.js/issues/25

- No dependency on adminUrl anymore as endpoints exist on site url
- Members.js script is auto initialized, no need for explicit init in themes anymore
- No local .env values need to be set for development as script loads data from fixtures directly
2020-05-01 17:10:17 +05:30
Rish
2aef0d57f8 Refactored app initialization to remove admin url dependency
closes https://github.com/TryGhost/members.js/issues/25

- Remove dependency on admin url for initialization as member endpoints now exist on site directly
- Auto initializes the script on load as need not wait on any external dependency
- API fetch cleanup in parent container
- Updates tests
2020-05-01 17:06:58 +05:30
Rish
e291e7075b Updated api endpoints to use new member endpoints on site
refs https://github.com/TryGhost/members.js/issues/25

- Members endpoints were refactored in core to exist directly on site as `<SITE>/members/api/<RESOURCE>`
- All endpoints needed are now directly on SITE and removes the need for AdminURL
- Init method is updated to read site data from fixtures for local development, as no admin endpoint exists now

Core Refs:
0cba02b370
fa4dfa1b21
c70c49258e
2020-05-01 17:00:52 +05:30
Rish
a373239fcb Added small style hack to insert css inside iframe components
no issue

-  By default, CRA's webpack bundle combines and appends the main css at root level, so they are not applied inside any iframe.
- JSX Styles don't work for `:hover` and other similar selectors which is needed to style certain components like checkboxes
- This uses a hack where we append `<style> </style>` tag with all CSS inside the head of iframe dynamically as string
- We can create separate variables to keep styles grouped logically, and export them as one appended style string to apply styles in iframe.
2020-05-01 16:03:07 +05:30
Rish
d4f604d091 v0.2.4 2020-05-01 13:05:23 +05:30
Rish
29c4b6be0f Updated yarn ship script
no issue

- Updates `yarn script` to use same consistent format we use across org
- Removes use of `npm` in publish
- Adds `preship` to run lint - ideally should run tests but react tests run in interactive mode and are very slow atm, need to sort that out first.
2020-05-01 13:02:27 +05:30