Commit Graph

274 Commits

Author SHA1 Message Date
m5r
1dd1c2bafe rename hasActiveSubscription from useCurrentUser() to hasOngoingSubscription 2021-10-21 00:01:03 +02:00
m5r
6dbdeac4d3 little clean up 2021-10-20 23:57:55 +02:00
m5r
7a4c583ea5 fetch phone number data even if user is not on a paid plan 2021-10-20 23:57:32 +02:00
m5r
5df0634060 remove free plan and features from /settings/billing 2021-10-20 20:29:21 +02:00
m5r
4ce3c2503a smol fixes to subscription webhooks 2021-10-20 19:25:07 +02:00
m5r
4096cfaa6c clean up auth forms 2021-10-20 00:39:07 +02:00
m5r
59b13bd0ea blur phone call history if on free plan 2021-10-19 23:56:16 +02:00
m5r
fd003f461b allow switching phone numbers but delete previous phone number 2021-10-19 23:49:28 +02:00
m5r
29d24f9fb4 * avoid creating multiple api keys when not necessary
* fetch messages and calls if user switches phone number while on an active sub
2021-10-19 23:12:16 +02:00
m5r
f11c7d3723 extract useSubscription to core/hooks 2021-10-19 20:03:09 +02:00
m5r
20df3dc3ac inbound and missed call icons in phone calls list 2021-10-19 19:59:55 +02:00
m5r
b17e135cf6 reflect when user has cancelled his sub 2021-10-19 19:59:20 +02:00
m5r
931384b468 improve loading states:
* app loader
 * specific loaders with spinner
2021-10-18 00:06:45 +02:00
m5r
5703b991ee fix github ci 2021-10-16 01:33:39 +02:00
m5r
2afd3554b3 set your twilio things from settings 2021-10-16 01:26:59 +02:00
m5r
3cc6f35071 get rid of onboarding requirements 2021-10-16 00:31:01 +02:00
m5r
c8f707af9c better empty states for phone calls and messages 2021-10-15 22:41:41 +02:00
m5r
c3bdef4800 allow logging out from settings 2021-10-15 22:30:57 +02:00
m5r
5b9eef73ae reject incoming calls if on free plan 2021-10-15 22:06:54 +02:00
m5r
197c2286c3 prevent making a call if on free plan 2021-10-15 22:06:05 +02:00
m5r
dad61ae77e fetch messages when switching to free plan 2021-10-15 21:57:56 +02:00
m5r
526ab4e451 ignore incoming messages if on free plan 2021-10-15 21:57:28 +02:00
m5r
17eba67fca public area update 2021-10-15 21:57:00 +02:00
m5r
545ee225aa extract s3 to integrations 2021-10-13 21:42:23 +02:00
m5r
24f1e953f6 append messages from free users with "sent from shellphone" 2021-10-03 21:31:26 +02:00
m5r
a28d89a8c2 let user know when his cancelled sub is going to expire 2021-10-03 20:56:31 +02:00
m5r
5f3060c591 paginate payments history 2021-10-03 20:24:46 +02:00
m5r
38c2edb8e4 replace got http calls by @devoxa/paddle-sdk where possible 2021-10-03 18:40:59 +02:00
m5r
4ce6ccc142 update billing to do list 2021-10-03 18:23:06 +02:00
m5r
3830e91af6 update roadmap 2021-10-03 18:21:51 +02:00
m5r
bca848bdb8 poll for subscription change instead of fully reloading the page 2021-10-03 18:20:59 +02:00
m5r
3a3d526e77 allow organizations to have multiple subscriptions. although only 1 can be active at a time 2021-10-03 18:19:45 +02:00
m5r
22e2b21b14 sur Intl.NumberFormat to format currency in billing history 2021-10-03 18:18:34 +02:00
m5r
dd9d15d042 always create new subscription 2021-10-02 00:19:06 +02:00
m5r
300bfa8e65 smol changes 2021-10-01 23:05:07 +02:00
m5r
771fea4d7b * return 200 asap to paddle and queue webhook received
* paddle ids to int
2021-10-01 23:04:12 +02:00
m5r
188c028667 cancel subscription on account deletion 2021-10-01 20:07:00 +02:00
m5r
c5f135fdcc list payments 2021-10-01 00:59:35 +02:00
m5r
5172ab11e7 pricing plans in settings 2021-10-01 00:18:03 +02:00
m5r
13ac4a5580 better looking SettingsSection 2021-09-30 23:37:54 +02:00
m5r
49f11a16e2 pricing in billing 2021-09-30 01:01:20 +02:00
m5r
daec5c0170 fix settings layout paddings 2021-09-30 00:35:05 +02:00
m5r
45a9d863ca s/primary/rebeccapurple/ for public areas
new primary is #007AFF
2021-09-30 00:21:38 +02:00
m5r
5e08863078 fresh settings layout 2021-09-30 00:10:42 +02:00
m5r
d1b88078fb bases de la billing page 2021-09-27 06:44:26 +08:00
m5r
0f2c3daf77 integrate backend with paddle 2021-09-27 06:10:48 +08:00
m5r
9cec49f255 make user full name mandatory 2021-09-25 22:16:31 +08:00
m5r
9d30930f96 style reset password form 2021-09-25 22:05:39 +08:00
m5r
d8acd6c37c style forgot password form 2021-09-25 21:52:31 +08:00
m5r
767c2e3966 style registration form 2021-09-25 21:15:16 +08:00
m5r
60b5c74ed6 style login form 2021-09-25 20:58:28 +08:00
m5r
a483bd62ab remove red cross from unavailable features and fade out text instead 2021-09-25 18:58:07 +08:00
m5r
e969b1b83e use prisma referential actions to cascade deletions 2021-09-25 07:56:25 +08:00
m5r
0abac20c6c empty state for calls 2021-09-25 07:40:11 +08:00
m5r
47c7469828 empty state for messages 2021-09-25 07:34:48 +08:00
m5r
9dea1ed499 fix type errors 2021-09-25 07:12:16 +08:00
m5r
c9b657e44c implement update user, update password and delete account 2021-09-25 07:09:20 +08:00
m5r
12983316f5 public pages smol tings 2021-09-25 07:08:29 +08:00
m5r
2f45e1d9a8 add import messages/calls ui feedback 2021-09-25 07:08:11 +08:00
m5r
8f0a6f7060 pricing page 2021-09-22 04:02:27 +08:00
m5r
4d1ef66986 memoize isServiceWorkerSupported in useNotifications hook 2021-09-18 05:35:51 +08:00
m5r
257987e3c0 backup database to s3 2021-09-16 06:56:16 +08:00
m5r
f8a2ef3b97 import heroicons icons from react-icons/hi 2021-09-08 05:01:03 +08:00
m5r
9ec73d6cf4 replace fontawesome icons with ionicons 5 2021-09-08 04:59:38 +08:00
m5r
8e856ffb92 update roadmap 2021-09-07 05:17:23 +08:00
m5r
bdac93d7e1 * custom error component
* upload sourcemaps to sentry
* report caught errors to sentry
2021-09-07 04:49:13 +08:00
m5r
48f9e67516 rework the formatRelativeDate function 2021-09-07 03:37:06 +08:00
m5r
3433a90258 memoize hook functions and wrap up outgoing calls 2021-09-05 00:29:25 +08:00
m5r
d5185fa183 smol change to landing page faqs 2021-09-04 00:41:02 +08:00
m5r
55a705d3d7 graciously handle call errors 2021-09-04 00:19:32 +08:00
m5r
356fd8818c clean code 2021-09-03 05:46:56 +08:00
m5r
afd9cfb73b smol change to landing page hero 2021-09-03 02:57:09 +08:00
m5r
a4c99b7e28 refresh device token before it expires every hour 2021-09-02 06:13:41 +08:00
m5r
98778c7a7b refresh device token before it expires every hour 2021-09-02 05:54:49 +08:00
m5r
c41fea755d rework header 2021-09-01 23:44:15 +08:00
m5r
8699f587f9 rework landing page hero 2021-09-01 23:04:16 +08:00
m5r
c81d8e7937 set state call_in_progress 2021-09-01 07:12:47 +08:00
m5r
24e9d20fe2 fix unending updateCallDuration queue 2021-09-01 06:42:59 +08:00
m5r
98485bd034 allow typing phone number with desktop keyboard 2021-09-01 06:42:39 +08:00
m5r
b4f06e5471 improve calling experience 2021-09-01 06:42:15 +08:00
m5r
dee1bc4697 style footer 2021-08-31 05:15:30 +08:00
m5r
d71e4de033 style call list page 2021-08-31 04:25:56 +08:00
m5r
4bc24f5395 date formatter in a single file 2021-08-31 01:05:57 +08:00
m5r
5e0c2ae643 send discord notification when someone joins the waitlist 2021-08-30 23:05:20 +08:00
m5r
ab004235f6 update outgoing call duration every 30 seconds until the call is over 2021-08-30 20:53:21 +08:00
m5r
6a2e76857b clean setTwilioWebhooks and twilio webhook verification 2021-08-30 19:24:05 +08:00
m5r
e77e7d17e0 tap phone button in keypad to "paste" latest recipient 2021-08-30 08:43:39 +08:00
m5r
3d1c545892 fix hook order error 2021-08-30 08:34:37 +08:00
m5r
74f903cc9f keypad QoL changes 2021-08-30 07:53:22 +08:00
m5r
87e3fc77d8 fix most lint warnings 2021-08-30 07:13:06 +08:00
m5r
e9fb2602ae Merge branch 'master' into outgoing-calls 2021-08-30 07:05:22 +08:00
m5r
1d3bfd5e36 footer things 2021-08-30 06:47:43 +08:00
m5r
d8f76f59db reword faq 2021-08-30 05:42:09 +08:00
m5r
1e681ca693 extract public pages layout 2021-08-30 05:28:42 +08:00
m5r
47aa722697 start public pages footer 2021-08-30 05:11:45 +08:00
m5r
0ed516afc8 track join waitlist 2021-08-30 05:00:34 +08:00
m5r
9079ed73ac differentiate Twilio TwiML app name between environments 2021-08-30 04:33:35 +08:00
m5r
549558142d parallelize metric fetching requests 2021-08-29 21:10:25 +08:00
m5r
ba876d0205 production analytics with panel bear 2021-08-29 06:17:59 +08:00
m5r
93e71d3f59 send formatter recipient phone number in conversations 2021-08-29 05:07:51 +08:00
m5r
1280a4dd00 actual metrics 2021-08-29 04:17:01 +08:00
m5r
39e0b8ca03 fake metrics 2021-08-29 03:56:26 +08:00
m5r
4bf7b108f3 actual frequently asked questions 2021-08-29 03:34:56 +08:00
m5r
e16f51e36a frequently asked questions 2021-08-28 23:55:23 +08:00
m5r
fca8dda685 publish rough roadmap 2021-08-28 16:30:23 +08:00
m5r
bae0b7da4c header navigation menu + open metrics and roadmap pages 2021-08-28 15:16:32 +08:00
m5r
1c1d944147 rename landing-page directory to public-area 2021-08-28 14:22:17 +08:00
m5r
13b8dd895a fix insert messages queue, insert messages with an id and no unnecessary field 2021-08-28 14:16:14 +08:00
m5r
1a5fdf5a0e logout button in settings 2021-08-28 14:03:49 +08:00
m5r
c6bdcaf433 add twilio referral link 2021-08-28 06:12:25 +08:00
m5r
1e89e57145 click to action on landing page 2021-08-28 05:09:45 +08:00
m5r
ca917d3ebc adapt test-api-handler for blitz API routes 2021-08-28 04:04:02 +08:00
m5r
43f89216ae type caught error to any 2021-08-28 02:06:59 +08:00
m5r
c75ed023a1 blog post page 2021-08-28 00:08:38 +08:00
m5r
9248e5fbbe upgrade blitz@0.40.0-canary.5 2021-08-27 22:59:13 +08:00
m5r
7da645824a fix ios headline 2021-08-27 06:00:22 +08:00
m5r
f9bf8485bc color headline 2021-08-27 05:37:03 +08:00
m5r
2ced53f4db actual mock image 2021-08-27 05:11:12 +08:00
m5r
5e9aa2e5a4 format phone number and clamp message preview to 2 lines in conversations list 2021-08-27 04:12:11 +08:00
m5r
1c93ac00ef redirect to landing page 2021-08-27 03:17:46 +08:00
m5r
20b6a7a996 favicons et fonts 2021-08-27 03:10:35 +08:00
m5r
6417f5dbcf preload fonts 2021-08-25 16:52:24 +08:00
m5r
daf599022f remove useless tests 2021-08-20 08:56:07 +08:00
m5r
9898e68023 focus recipient input when opening the new message area 2021-08-20 08:31:47 +08:00
m5r
9ca0e5d09e fix organizationId when setting twilio fields 2021-08-20 08:31:30 +08:00
m5r
a289e9a4ef validate call webhook and translate call status 2021-08-20 08:20:03 +08:00
m5r
c43979d6b7 onboarding wording 2021-08-20 08:18:35 +08:00
m5r
b83a64d862 group messages by every 15 minutes 2021-08-15 11:09:09 +08:00
m5r
30d186d37d insert call to db when making a call 2021-08-14 01:16:27 +08:00
m5r
f628addd80 skip duplicates when inserting calls and messages 2021-08-14 01:15:35 +08:00
m5r
306febe4d1 rename webhook route for calls 2021-08-13 23:56:07 +08:00
m5r
5d5195fd9f replace ascending with descending 2021-08-13 23:54:13 +08:00
m5r
800ff5ab99 cleanup call making 2021-08-13 23:52:38 +08:00
m5r
a26babc792 small qol changes 2021-08-13 19:55:05 +08:00
m5r
de4d4e63d5 useMakeCall() hook 2021-08-13 12:43:57 +08:00
m5r
1e736e8f05 move files around 2021-08-12 21:52:52 +08:00
m5r
0e280ceb27 wire up some stuff in outgoing call page 2021-08-08 19:46:32 +08:00
m5r
423a9cea00 reset keypad page phoneNumber state when calling 2021-08-08 19:46:04 +08:00
m5r
97fce0f33f extract keypad component 2021-08-08 19:22:34 +08:00
m5r
e4672597dd get access token and use it to make a call 2021-08-08 14:37:53 +08:00
m5r
b4aa79bd85 implement session creation when logging in 2021-08-08 13:34:51 +08:00
m5r
0b34e861e0 set api key when setting the phone number to avoid race conditions later when fetching calls and messages 2021-08-08 13:34:15 +08:00
m5r
6ad516a99e fix onboarding 2021-08-08 12:34:29 +08:00
m5r
6f672bfeb2 use twilio api key/secret instead of authToken 2021-08-08 12:28:19 +08:00
m5r
0f25c53b50 set twilio api key and secret 2021-08-08 12:27:22 +08:00
m5r
9f213ad71e small fixes 2021-08-08 11:00:00 +08:00
m5r
d20eeb0617 multi tenancy stuff 2021-08-06 01:14:19 +08:00
m5r
adf5fb31d1 trace error in layout 2021-08-04 13:49:45 +08:00
m5r
fcefb69790 temporary blog shortcut 2021-08-04 05:14:41 +08:00
m5r
6f64d80170 blog articles 2021-08-04 05:04:17 +08:00