Commit Graph

658 Commits

Author SHA1 Message Date
keyan 679f766f07 add average comments per post to items analytics 2023-08-14 15:36:54 -05:00
keyan 03f0329984 fix image uploading/edit 2023-08-13 14:12:18 -05:00
keyan 9727fb4838 merge bugs fixes for anon zapping 2023-08-12 09:21:40 -05:00
ekzyis f0bc1baed2 Save payment tokens in localStorage 2023-08-12 04:18:32 +02:00
SatsAllDay 1f6e144cb2
iOS splash screen for dark-theme (#393)
Add images for each supported iOS device for a dark-theme splash screen

Conditionally use light vs dark images based on the `(prefers-color-scheme: dark)`
media query

Note: Once the PWA is installed, it appears that iOS caches the splash screen image for an
unknown period of time, so if you change your device's preferred theme after installation,
the splash screen doesn't update to reflect it. The PWA must be re-installed for
this change to take effect.
2023-08-11 19:08:24 -05:00
ekzyis b9461b7eb3
Allow zapping, posting and commenting without funds or an account (#336)
* Add anon zaps

* Add anon comments and posts (link, discussion, poll)

* Use payment hash instead of invoice id as proof of payment

Our invoice IDs can be enumerated.
So there is a - even though very rare - chance that an attacker could find a paid invoice which is not used yet and use it for himself.
Random payment hashes prevent this.

Also, since we delete invoices after use, using database IDs as proof of payments are not suitable.
If a user tells us an invoice ID after we deleted it, we can no longer tell if the invoice was paid or not since the LN node only knows about payment hashes but nothing about the database IDs.

* Allow pay per invoice for stackers

The modal which pops up if the stacker does not have enough sats now has two options: "fund wallet" and "pay invoice"

* Fix onSuccess called twice

For some reason, when calling `showModal`, `useMemo` in modal.js and the code for the modal component (here: <Invoice>) is called twice.

This leads to the `onSuccess` callback being called twice and one failing since the first one deletes the invoice.

* Keep invoice modal open if focus is lost

* Skip anon user during trust calculation

* Add error handling

* Skip 'invoice not found' errors

* Remove duplicate insufficient funds handling

* Fix insufficient funds error detection

* Fix invoice amount for comments

* Allow pay per invoice for bounty and job posts

* Also strike on payment after short press

* Fix unexpected token 'export'

* Fix eslint

* Remove unused id param

* Fix comment copy-paste error

* Rename to useInvoiceable

* Fix unexpected token 'export'

* Fix onConfirmation called at every render

* Add invoice HMAC

This prevents entities which know the invoice hash (like all LN nodes on the payment path) from using the invoice hash on SN.

Only the user which created the invoice knows the HMAC and thus can use the invoice hash.

* make anon posting less hidden, add anon info button explainer

* Fix anon users can't zap other anon users

* Always show repeat and contacts on action error

* Keep track of modal stack

* give anon an icon

* add generic date pivot helper

* make anon user's invoices expire in 5 minutes

* fix forgotten find and replace

* use datePivot more places

* add sat amounts to invoices

* reduce anon invoice expiration to 3 minutes

* don't abbreviate

* Fix [object Object] as error message

Any errors thrown here are already objects of shape { message: string }

* Fix empty invoice creation attempts

I stumbled across this while checking if anons can edit their items.

I monkey patched the code to make it possible (so they can see the 'edit' button) and tried to edit an item but I got this error:

  Variable "$amount" of required type "Int!" was not provided.

I fixed this even though this function should never be called without an amount anyway. It will return a sane error in that case now.

* anon func mods, e.g. inv limits

* anon tips should be denormalized

* remove redundant meTotalSats

* correct overlay zap text for anon

* exclude anon from trust graph before algo runs

* remove balance limit on anon

* give anon a bio and remove cowboy hat/top stackers;

* make anon hat appear on profile

* concat hash and hmac and call it a token

* Fix localStorage cleared because error were swallowed

* fix qr layout shift

* restyle fund error modal

* Catch invoice errors in fund error modal

* invoice check backoff

* anon info typo

* make invoice expiration times have saner defaults

* add comma to anon info

* use builtin copy input label

---------

Co-authored-by: ekzyis <ek@stacker.news>
Co-authored-by: keyan <keyan.kousha+huumn@gmail.com>
2023-08-11 18:50:57 -05:00
keyan 39db6e096d restyle fund error modal 2023-08-11 17:05:21 -05:00
keyan 63dd5d4d09 fix qr layout shift 2023-08-11 17:05:21 -05:00
keyan 6ba1c3e8ab anon func mods, e.g. inv limits 2023-08-11 12:14:37 -05:00
keyan e668b1f7f3 use datePivot more places 2023-08-10 17:56:30 -05:00
ekzyis bd59e392b7 Remove unused id param 2023-08-10 03:34:38 +02:00
ekzyis 118f591d04 Merge branch 'master' into 266-zaps-without-account 2023-08-10 03:34:38 +02:00
keyan b92f63ca88 fix remaining misuses of plural units 2023-08-08 17:15:30 -05:00
SatsAllDay 6e05cd38f9
Singular/Plural "Sats" labels (#380)
Co-authored-by: keyan <keyan.kousha+huumn@gmail.com>
2023-08-08 16:04:06 -05:00
Keyan 76b4156ccb
Merge branch 'master' into 266-zaps-without-account 2023-08-08 09:42:21 -05:00
ekzyis 7369bd819d
Add nostr login (#367)
Co-authored-by: keyan <keyan.kousha+huumn@gmail.com>
2023-08-07 19:50:01 -05:00
Keyan 3d0bb4b32c
Merge branch 'master' into 266-zaps-without-account 2023-08-07 15:10:20 -05:00
keyan ffb856ae88 fix oauth signup 2023-08-07 15:05:55 -05:00
keyan 3333cc86a2 inline dark mode script 2023-08-07 12:06:58 -05:00
keyan c606510930 update pwa blacks 2023-08-06 14:26:08 -05:00
keyan eeaf6e10e5 reduce rerenders in notifications 2023-08-06 10:47:58 -05:00
keyan e4aaaac20f don't use cache for SSR 2023-08-05 14:46:29 -05:00
keyan aea8948c45 dark-mode needs to block block 2023-08-04 20:45:12 -05:00
keyan 8d8e2859dd fix dark mode 2023-08-04 19:21:51 -05:00
keyan 23257d8c63 fix notifications glitchiness 2023-08-04 12:08:16 -05:00
keyan 8a5cd32be6 don't use next's script tag 2023-08-03 17:49:56 -05:00
keyan 0ab9119739 improve notifications UX: highlight reply and distinguish new notifications 2023-08-03 14:56:59 -05:00
keyan b1b8f9de56 implement our own nprogress bar 2023-08-01 21:06:15 -05:00
keyan a426c8b539 fix 404 problem 2023-08-01 12:45:46 -05:00
keyan c7e2623461 increase apollo slowlog threshold 2023-07-31 16:02:50 -05:00
keyan e1c51075a2 fix conditional nextFetchPolicy overriding cache-only on SSR and suppress time hydration warnings 2023-07-31 14:54:30 -05:00
keyan b550f80b9f make invoices/withdrawals clickable in satistics 2023-07-31 13:00:01 -05:00
keyan 10e8cb35df fix import on invites 2023-07-31 09:11:22 -05:00
keyan d2216e80da conform to linter 2023-07-31 08:39:10 -05:00
keyan c909efb7b7 update wallet code to prisma 5, handle prisma 5 errors on serialization 2023-07-31 08:31:40 -05:00
ekzyis 5415c6b0f6 Add anon zaps 2023-07-30 23:45:07 +02:00
keyan 42bdd40f91 show errors on settings during auth linking 2023-07-30 15:39:18 -05:00
keyan 63a4a7acad fix settings hydration error 2023-07-30 14:38:50 -05:00
keyan d04dc691df provide jwt migration 2023-07-30 14:03:24 -05:00
keyan 5232b59625 upgrade to next-auth 4 (bonus: improve error pages) 2023-07-29 14:38:20 -05:00
keyan 688d67a0d6 improve service worker asset precaching and offline page 2023-07-28 10:57:12 -05:00
keyan 7542dd6cc4 upgrade to prisma 4 2023-07-26 19:18:42 -05:00
keyan 672853a7ea upgrade to prisma 3 2023-07-26 11:01:31 -05:00
keyan 8ab018af88 fix nested comment sorting 2023-07-25 19:45:35 -05:00
keyan 98552c853c fix back button behavior on select navigation 2023-07-25 15:29:45 -05:00
keyan 4bfd021342 enhance styling 2023-07-25 13:32:48 -05:00
keyan ab2046ab0b fix issues with new linting 2023-07-25 09:14:45 -05:00
keyan dae9c64e96 more package updates 2023-07-24 19:50:55 -05:00
keyan e87610c45b update packages and reduce bundle size 2023-07-24 17:50:12 -05:00
keyan 356f7e072c 50% reduction in bundle size by being careful with big imports 2023-07-24 16:06:26 -05:00
keyan 6407455def upgrade react-bootstrap 2023-07-24 13:53:53 -05:00
keyan 59f7b6ff26 Revert "Revert "shield your eyes; massive, squashed refactor; nextjs/react/react-dom/apollo upgrades""
This reverts commit 18910fa2ed.
2023-07-23 10:08:43 -05:00
keyan 18910fa2ed Revert "shield your eyes; massive, squashed refactor; nextjs/react/react-dom/apollo upgrades"
This reverts commit d0314ab73c.
2023-07-23 09:16:12 -05:00
keyan d0314ab73c shield your eyes; massive, squashed refactor; nextjs/react/react-dom/apollo upgrades 2023-07-21 17:33:11 -05:00
keyan 0ff4da1a4f fix empty signup page 2023-07-11 10:21:46 -05:00
keyan 93afd4ea9a fix credentials login/signup/link bug 2023-07-10 19:20:38 -05:00
keyan efa3172f15 top stackers sorted stat to front 2023-07-10 12:59:21 -05:00
keyan 27833c9888 attempt to fix auth linking regression 2023-07-10 12:18:17 -05:00
keyan e8aa0a4dae users? => stackers? 2023-07-09 12:53:50 -05:00
keyan 0c67808e44 make reward timer dst sensitive 2023-07-07 14:44:12 -05:00
ekzyis 3c3a97fb8e
Fix reward countdown for other time zones (#347)
Co-authored-by: ekzyis <ek@stacker.news>
2023-07-06 20:55:18 -05:00
keyan 0c51309520 enhance pwa presentation 2023-07-06 16:53:48 -05:00
keyan ec9a424bf4 reward countdown in footer 2023-07-06 12:43:51 -05:00
keyan 09d7e960cc back to lightning animation 2023-07-05 09:47:44 -05:00
keyan 3068252adf merge github master 2023-07-04 15:35:04 -05:00
ekzyis 388e00dd04
Service worker rework, Web Target Share API & Web Push API (#324)
* npm uninstall next-pwa

next-pwa was last updated in August 2022.
There is also an issue which mentions that next-pwa is abandoned (?): https://github.com/shadowwalker/next-pwa/issues/482

But the main reason for me uninstalling it is that it adds a lot of preconfigured stuff which is not necessary for us.
It even lead to a bug since pages were cached without our knowledge.

So I will go with a different PWA approach. This different approach should do the following:
- make it more transparent what the service worker is doing
- gives us more control to configure the service worker and thus making it easier

* Use workbox-webpack-plugin

Every other plugin (`next-offline`, `next-workbox-webpack-plugin`, `next-with-workbox`, ...) added unnecessary configuration which felt contrary to how PWAs should be built.
(PWAs should progressivly enhance the website in small steps, see https://web.dev/learn/pwa/getting-started/#focus-on-a-feature)

These default configurations even lead to worse UX since they made invalid assumptions about stacker.news:
We _do not_ want to cache our start url and we _do not_ want to cache anything unless explicitly told to.
Almost every page on SN should be fresh for the best UX.

To achieve this, by default, the service worker falls back to the network (as if the service worker wasn't there).

Therefore, this should be the simplest configuration with a valid precache and cache busting support.

In the future, we can try to use prefetching to improve performance of navigation requests.

* Add support for Web Share Target API

See https://developer.chrome.com/articles/web-share-target/

* Use Web Push API for push notifications

I followed this (very good!) guide: https://web.dev/notifications/

* Refactor code related to Web Push

* Send push notification to users on events

* Merge notifications

* Send notification to author of every parent recursively

* Remove unused userId param in savePushSubscription

As it should be, the user id is retrieved from the authenticated user in the backend.

* Resubscribe user if push subscription changed

* Update old subscription if oldEndpoint was given

* Allow users to unsubscribe

* Use LTREE operator instead of recursive query

* Always show checkbox for push notifications

* Justify checkbox to end

* Update title of first push notification

* Fix warning from uncontrolled to controlled

* Add comment about Notification.requestPermission

* Fix timestamp

* Catch error on push subscription toggle

* Wrap function bodies in try/catch

* Use Promise.allSettled

* Filter subscriptions by user notification settings

* Fix user notification filter

* Use skipWaiting

---------

Co-authored-by: ekzyis <ek@stacker.news>
2023-07-04 14:36:07 -05:00
keyan b6628eb159 july 4th festivities 2023-07-03 14:46:54 -05:00
keyan 747371a4e4 snl live banner 2023-06-20 09:57:06 -05:00
keyan 59ee15b551 new user email copy 2023-06-19 17:42:47 -05:00
keyan cc6dc8c68b add daily discussion thread permalink 2023-06-19 14:40:24 -05:00
keyan 3e4161ae8c tip -> zap 2023-06-19 13:21:55 -05:00
keyan f0f51438c4 add top posts/comments to subs 2023-06-12 19:40:18 -05:00
keyan ed938527fd simply respect notification alert message 2023-06-12 15:37:12 -05:00
keyan 342a165ced refine cancel button 2023-06-12 14:39:27 -05:00
ekzyis 069417d130
Enable push notifications in settings (#301)
* Enable push notifications in settings

* Fix checkbox still checked after user denied permission

The error was related to me thinking that the value prop does anything. It didn't.
The value of the checkbox is handled by formik.
So the solution was to hook into formik and use the handler which actually changes the value.

* Add double opt-in to /notifications

* Better styling of alert in /notifications

---------

Co-authored-by: ekzyis <ek@stacker.news>
2023-06-12 13:03:44 -05:00
ekzyis e243c1c224
Add cancel button for editing all post types + bio (#310)
* Add cancel button when editing any post type

* Add cancel button when editing bio

---------

Co-authored-by: ekzyis <ek@stacker.news>
2023-06-12 12:35:28 -05:00
ekzyis 3ee16422f7
Fix code style (#303)
Co-authored-by: ekzyis <ek@stacker.news>
2023-06-05 14:07:29 -05:00
keyan d4988694c8 make room in header to pwa back button 2023-06-01 19:34:26 -05:00
ekzyis 88372b6a9e
Use fallback instead of 500 if callback malformed (#296)
Co-authored-by: ekzyis <ek@stacker.news>
2023-05-31 19:48:14 -05:00
ekzyis e97509eea7
Use PWA with display: standalone (#292)
* Use next-pwa

* Use standalone + back button

* Use Notification API

* Use custom service worker

* Use url_handlers

* Add offline page

* Use smaller icon in notification

* Only prompt for notifications if logged in

* small enhancements to standalone pwa

* remove unused back arrow

---------

Co-authored-by: ekzyis <ek@stacker.news>
Co-authored-by: keyan <keyan.kousha+huumn@gmail.com>
2023-05-31 17:28:33 -05:00
keyan 244cff14b0 fix for user stat dashboard 2023-05-21 12:08:41 -05:00
keyan 4aee2c745f stats are averages now 2023-05-19 18:12:48 -05:00
keyan 0a3f5fd201 materialize dashboard in views 2023-05-19 17:38:39 -05:00
keyan 236dcae13b remove user analytics dos vector 2023-05-17 17:56:34 -05:00
keyan 6d8780373a form enhancements 2023-05-11 14:34:42 -05:00
keyan df1f1a483a require sub selection, allow editting 2023-05-10 19:30:51 -05:00
keyan 01d29e013e fix job editting bug 2023-05-08 14:14:32 -05:00
keyan 8830b8ee9c slight mods to open redirect fix 2023-05-07 08:34:08 -05:00
ekzyis a396933be2 Fix slash after stacker.news not required
The slash should be required else we could still redirect to external sites.

For example, a site could just use "stacker.news" as a subdomain: https://stacker.news.mallory.com/
2023-05-07 07:52:56 -05:00
ekzyis decca40c94 Return 500 if callback URL is external 2023-05-07 07:52:56 -05:00
keyan 347a6a54d2 improve comment performance 2023-05-06 16:51:17 -05:00
keyan b406f0c340 avoid db dip for sub 2023-05-05 12:39:57 -05:00
keyan 5e6e6a18e6 a little cleanup on new rss feeds 2023-05-04 15:05:07 -05:00
ekzyis d98421d9cd Add RSS feeds for ~bitcoin and ~nostr 2023-05-04 13:43:40 -05:00
keyan 4e817a232d sub related enchancements 2023-05-02 11:55:10 -05:00
keyan 4be5286122 hide cowboy hat setting 2023-05-01 16:52:02 -05:00
keyan a241d683d8 nostr sub 2023-05-01 15:58:30 -05:00
mvpratt 48b08d2aff limit oauth scope to minimum possible: public github info for user 2023-04-26 13:02:42 -05:00
keyan a3e928dc42 correct lnurlp nostr pubkey stuff 2023-02-24 10:41:47 -06:00
ekzyis 98daae478f
Fix broken link to top users in settings (#241) 2023-02-24 09:49:57 -06:00
ekzyis 7b838cdeb2
Implement bookmarking of posts and comments (#235) 2023-02-16 16:23:59 -06:00
keyan 30cde2ea38 fix nip57? 2023-02-15 11:20:43 -06:00
keyan 9f2c8d64bc use decodeURIComponent instead 2023-02-14 19:04:05 -06:00
keyan 93d4581360 complete nip 57 support 2023-02-14 16:58:12 -06:00
keyan ef5346000b support NIP-57 2023-02-14 12:52:15 -06:00
keyan 97f74da0fd top cowboys 2023-02-09 12:41:28 -06:00
keyan 74df0db035 client side error boundary 2023-02-08 17:59:14 -06:00
keyan 4cae1ae230 reuse validation on server 2023-02-08 13:39:53 -06:00
keyan 0a0f10b290 update user count 2023-02-04 17:31:18 -06:00
keyan c1080ec4d7 fixes for top 2023-02-03 13:10:18 -06:00
keyan 072e60c954 streaks 2023-02-01 17:40:49 -06:00
keyan a6ce93c2bb support NIP-19 in NIP-05 2023-02-01 09:54:08 -06:00
Austin Kelsay e13e37744e
stackernews bounties (#227)
bounties
2023-01-26 10:11:55 -06:00
keyan 29c59d93ea open timestamps 2023-01-22 14:17:50 -06:00
keyan 9644a9f867 slashtags auth 2023-01-18 12:49:20 -06:00
keyan 10ff3fa1c3 delete 2023-01-13 11:52:18 -06:00
Keyan 7c91f279c5
Merge branch 'master' into master 2023-01-11 12:26:57 -06:00
keyan ae5c6c457f global modal + small fixes/enhancements 2023-01-10 17:13:37 -06:00
keyan 79af1b5852 add missing signup file 2023-01-09 18:56:19 -06:00
keyan c2685a659e sign up buttons 2023-01-09 18:33:44 -06:00
keyan eada9d92ad fix empty nostr relay settings 2023-01-06 19:18:03 -06:00
keyan 2d012ba7fe allow nip05 for users 2023-01-06 18:53:29 -06:00
keyan 76b5b7743e fix blockquote spacing 2023-01-05 19:06:31 -06:00
keyan 2080cb896d lexical beta test url 2023-01-05 13:24:09 -06:00
kerooke 335125f57b
Merge branch 'stackernews:master' into master 2022-12-29 11:38:53 -05:00
keyan 41226245c5 referrals 2022-12-19 16:27:52 -06:00
kerooke cd56416e3f
Update satistics.js 2022-12-11 13:30:35 -05:00
keyan 3579e3346f fix learn about rewards link typo 2022-12-09 15:23:45 -06:00
keyan 7b7ed0047c turbo tipping 2022-12-09 13:25:38 -06:00
keyan e1bdb9c769 donations to rewards 2022-12-07 18:04:02 -06:00
keyan f6a95c81eb add spender/stacker types 2022-12-06 13:26:33 -06:00
keyan e28b74fd85 extract day/month/year as UTC 2022-12-01 17:46:56 -06:00
keyan 2a4e5a0617 add more filters to recent 2022-12-01 16:42:49 -06:00
keyan a2db3e18b4 better user analytics mostly 2022-12-01 15:31:04 -06:00
keyan ebbd1175b1 don't mix int types 2022-11-26 18:23:49 -06:00
keyan de863021f9 prevent apollo caching on the server 2022-11-24 13:22:58 -06:00
keyan 5746160893 let tips affect ranking 2022-11-23 12:12:09 -06:00
keyan 1bf747c7c0 sats to msats 2022-11-16 10:57:03 -06:00
keyan 525cab2573 upgrade deps 2022-11-06 11:28:58 -06:00
keyan a1690ed511 improve freebie wrt boost, get off free earlier 2022-11-01 14:32:56 -05:00
keyan 760b6b6e10 related items 2022-10-27 15:25:42 -05:00
keyan a398784f26 improved top 2022-10-25 16:35:32 -05:00
keyan 30b1ee33aa user search 2022-10-25 12:13:06 -05:00
keyan e4d150413b search filters 2022-10-20 17:44:44 -05:00
keyan 729bcead69 select instead of dropdown for currency 2022-10-04 16:21:42 -05:00
ekzyis 2dd4b1ce98
Merge branch 'master' into 103-add-other-currencies 2022-10-04 01:01:43 +02:00
keyan 46ea2f661c make jobs great again 2022-09-29 15:42:33 -05:00
keyan d9d426e5c3 add freebies 2022-09-27 16:19:15 -05:00
keyan dd233346d9 don't rank outlawed/borderland 2022-09-23 09:27:01 -05:00
keyan 9c4d74888f add borderland 2022-09-22 15:42:04 -05:00
keyan 2c7c237fc7 show when items are outlawed 2022-09-22 13:44:50 -05:00
keyan 7faae425b3 wild west mode 2022-09-21 14:57:36 -05:00
ekzyis c184faf017 Use dropdown for fiat selection in settings 2022-09-18 03:45:21 +02:00
ekzyis 455ca25efa Validate currency input 2022-09-13 02:03:45 +02:00
ekzyis 5d4abecf3c Add input for fiat currency in settings 2022-09-13 02:02:55 +02:00
keyan 52de4a253e max amount for alby 2022-09-06 09:37:53 -05:00
keyan 7efc86427d maintage pagination and other state on back button 2022-09-06 08:32:00 -05:00
keyan 58eb840adb prevent default on privacy invoice info click 2022-09-02 11:58:16 -05:00
keyan 172d6c3c2f optionally hide invoice descriptions 2022-08-30 16:50:47 -05:00
keyan 0ad886ffc0 constrain invoice quantity and amount 2022-08-30 15:33:39 -05:00
keyan d32fa05e42 fix react error 2022-08-25 12:27:03 -05:00
keyan fba0187b2c add link to recent/comments 2022-08-23 17:34:51 -05:00
keyan ccb5a81dd5 add recent comments 2022-08-18 17:05:58 -05:00
keyan 03723bd5ee fix bad earn link it satistics 2022-08-18 15:57:48 -05:00
keyan 388c7d0240 full powered editing 2022-08-18 13:15:24 -05:00
keyan ddb4a30c4b spam fees 2022-08-11 15:38:10 -05:00
keyan 82280b0966 add polls 2022-07-30 08:51:04 -05:00
keyan 08defc561b improved heading and images for markdown 2022-07-13 18:00:48 -05:00
keyan b8f57e0c3c add Onion-Location header 2022-07-12 13:18:12 -05:00
keyan fde8937098 add onion address 2022-07-12 11:40:44 -05:00
keyan 4c7a6e4998 fixes/enhancements to users dashboard 2022-07-01 13:26:34 -05:00
keyan 0b3b690c10 user stats 2022-06-24 10:38:00 -05:00
keyan 2c749dd07f monthly earning users 2022-06-22 16:13:51 -05:00
keyan f024cd39a2 add usage mvp usage charts 2022-06-10 14:20:33 -05:00
keyan 1df49e03d9 account linking 2022-06-08 16:26:44 -05:00
keyan c061f4a6f0 limit pending invoices 2022-05-31 17:17:48 -05:00
keyan 44f59f1f34 remove meta tags from _document.js 2022-05-19 11:50:38 -05:00
keyan 47392f0d7c expire lnurl withdrawals after an hour 2022-05-19 11:50:02 -05:00
keyan 6a8fba14eb check invoice description hash against lnurl pay metadata 2022-05-19 09:22:25 -05:00
keyan 9c8396670a adhere to lnurlp spec better 2022-05-19 08:18:28 -05:00
keyan 9287e7b93c allow user to visit/bookmark empty search page 2022-05-18 16:09:44 -05:00
keyan 16957cba34 improve error pages 2022-05-18 15:55:06 -05:00
keyan daa4dc750b fix satistics profile photo issue 2022-05-18 14:31:24 -05:00
keyan e2409efbaf indicate to user when there are new jobs 2022-05-09 13:01:23 -05:00
keyan aa4ac2ecc9 add ln addr + lnurl pay qr code to profile pages 2022-05-06 14:34:35 -05:00
keyan 771978d562 sub to newsletter on sign up 2022-05-04 13:29:30 -05:00
keyan dc44764008 limit related queries in me query for SSR 2022-04-28 17:00:09 -05:00
keyan 934c5021a9 a few perf enhancements + gql slowlogs 2022-04-28 13:11:05 -05:00
keyan 8e0aaab161 refine module instantiation 2022-04-27 17:06:42 -05:00
keyan 2dba0b3ffe invite warning message 2022-04-26 10:48:30 -05:00
keyan 2608cbc326 fix notification setting label typo 2022-04-23 18:55:38 -05:00
keyan 188230c37c add notification settings 2022-04-21 17:50:02 -05:00
keyan d91eb02c74 don't 404 for inactive job that user owns 2022-04-21 13:06:52 -05:00
keyan 74b191837e refine reply-only notifications 2022-04-21 12:48:27 -05:00
keyan e1ffef8308 allow just showing replies in notifications 2022-04-20 16:35:30 -05:00
keyan ae916ecb97 add notFound function to SSR HOF, 404 inactive jobs 2022-04-18 11:40:08 -05:00
keyan f40fe85d5a font-display: swap 2022-04-15 11:23:37 -05:00
keyan dfea0db775 load darkmode script from cdn 2022-04-15 10:59:39 -05:00
keyan 9b8238616a make mobile shortcut icons pretty 2022-04-14 12:05:44 -05:00
Keyan 49ca1847a2
Merge pull request #123 from secondl1ght/master
Typo fix on wallet page
2022-03-22 15:20:16 -05:00
keyan 5ff856d061 earning 2022-03-17 15:13:19 -05:00
secondl1ght d056a4c120
Update wallet.js 2022-03-17 12:04:53 -06:00
keyan 344958943c provide 'plain text' email login link for users using embedded browsers in their mobile email clients 2022-03-10 16:47:00 -06:00
keyan a989140653 fix profile posts and comments pagination 2022-03-03 17:53:16 -06:00
keyan 2afd1c437b 404 on nonexistant sub 2022-03-03 16:18:16 -06:00
keyan b954186d31 jobs w/o payments yet 2022-02-24 13:05:57 -06:00
keyan 155307127c add sub route 2022-02-24 11:54:25 -06:00
keyan 3e977c020d fix lightning font loading 2022-02-23 21:17:10 -06:00
keyan 8c2a4dc76a add search SEO and capture 2022-02-05 11:29:41 -06:00
keyan 8829fccdef add top spenders to top page 2022-02-02 16:01:48 -06:00
keyan 9490b3dc5f max fee needs to be a number 2022-02-02 16:01:48 -06:00
keyan dce189703c make wot ranking live + wot ranked comments 2022-02-02 16:01:48 -06:00
keyan 751abaa1ad fix user posts/comments fetchMore 2022-01-30 11:43:22 -06:00
keyan d22991bc3b empty when at end of search 2022-01-27 14:31:16 -06:00
keyan f1fd1f3c9c not found on empty search 2022-01-27 14:15:18 -06:00
keyan afed19430c working search 2022-01-27 13:18:48 -06:00
keyan 28b86af898 basic search query api 2022-01-26 09:35:14 -06:00
keyan d0403fc959 fix lnurlp domain 2022-01-25 14:28:50 -06:00
keyan e37475f927 send to lightning address 2022-01-24 11:25:15 -06:00
keyan 5776096eb1 remove font preload 2022-01-21 14:00:32 -06:00
keyan d102065479 don't request email from gh 2022-01-19 17:14:45 -06:00
keyan abac0c8c70 fix weird satistics filter bug 2022-01-19 15:51:55 -06:00
keyan 6b19b10bb2 invite notifications 2022-01-19 15:02:38 -06:00
keyan cdfe973a65 add wot page 2022-01-17 16:38:40 -06:00
keyan cefd6793f8 different 400/500 image component 2022-01-13 12:16:00 -06:00
keyan f9016d13ee only check capture if not page is not cached 2022-01-12 19:35:17 -06:00
keyan 3d94ef32ac improve screen capture: 2x resolution, caching, exit on exception 2022-01-12 17:13:09 -06:00
keyan f4006686d9 custom error pages 2022-01-11 13:38:15 -06:00
keyan 9d07318156 cast amount 2022-01-09 11:22:43 -06:00
keyan 8286095871 msats on lnaddr pay 2022-01-09 11:13:57 -06:00
keyan 25e46a525d fix lnaddr not checking 2022-01-09 10:50:51 -06:00
keyan 41323883a5 utf-8 encode rss 2022-01-07 15:29:38 -06:00
keyan cb9922b373 withdrawal failure links to withdrawal form 2022-01-07 15:22:44 -06:00
keyan c3e6627cea support pinned posts + recurring pins 2022-01-07 10:32:31 -06:00
keyan e950b0df7f add job queue 2022-01-05 14:37:34 -06:00
keyan fcb7d847e4 make satistics table responsive 2021-12-17 10:57:32 -06:00
keyan a126d5fa94 top users 2021-12-16 18:39:19 -06:00
keyan 3e17eb1688 top users query 2021-12-16 18:01:02 -06:00
keyan 8e5327022d WIP top comments and users 2021-12-16 17:05:31 -06:00
keyan 54c1c8c41b wallet history link on wallet pages 2021-12-16 14:17:50 -06:00
keyan bbc34edf51 satistics done 2021-12-16 14:02:17 -06:00
keyan d92f58aaf4 inv & with satistics + filtering 2021-12-16 11:27:12 -06:00
keyan 06f5ed731e satisitics with invoice & withdrawal 2021-12-15 10:50:11 -06:00
keyan 7989e38207 limit to one capture at a time 2021-11-30 09:35:17 -06:00
keyan c7ae5dc8ac ssr me and price 2021-11-28 11:29:17 -06:00
keyan d7238a6d6d bio warning 2021-11-23 15:23:25 -06:00
keyan c89fb2716a don't load dark mode as a module 2021-11-16 14:55:40 -06:00
keyan d0687e626b fix dark mode flash on non-homepage 2021-11-16 13:17:13 -06:00
keyan f56315f89f add progress bar and fix reply padding 2021-11-13 07:28:08 -06:00
keyan dd97710d71 many small design enhancements 2021-11-12 16:39:52 -06:00
keyan 749b49c313 preload font, only show header items when they're done loading 2021-11-11 16:14:42 -06:00
keyan bdf63a85be fix invites 2021-11-11 11:38:41 -06:00
keyan a3544fb67f dark mode with css variables instead 2021-11-09 16:43:56 -06:00
keyan c6e6ddfa65 half-working local storage version 2021-11-09 11:38:58 -06:00
keyan 20b3a5af63 working backend version 2021-11-08 14:07:37 -06:00
keyan 3bbf3f7470 add dark mode 2021-11-04 19:07:41 -04:00
keyan 2d97314d33 dark mode without ability to switch 2021-11-04 14:22:03 -04:00
keyan 2eaf407f17 add settings page 2021-10-30 11:20:11 -05:00
keyan b8080137a8 lnurl-withdrawal support 2021-10-28 14:59:53 -05:00
keyan 945225d205 return 404 for nonexistant users and items 2021-10-26 16:31:39 -05:00
keyan 744f9d3560 remove auto focus on invites page 2021-10-26 16:09:16 -05:00
keyan 07b9da353b smarter use of SSR and caching 2021-10-26 15:49:37 -05:00
keyan 06b0424b82 mess with cache etc 2021-10-25 14:49:46 -05:00
keyan 55af57a5b7 move website capture to a spawned process 2021-10-22 17:21:38 -05:00
keyan 68ddd0f86b sort by top posts 2021-10-21 17:05:06 -05:00
keyan 955d1aa1b2 finish up invites 2021-10-15 18:07:51 -05:00
keyan 3a52f8967a more invite work 2021-10-15 13:05:34 -05:00
keyan 18f4c9c88d create invite page 2021-10-15 12:56:54 -05:00
keyan 7107d329ba invites page 2021-10-14 16:05:37 -05:00
keyan 4935c7dc1c invite graphql + basic frontend 2021-10-12 18:49:04 -05:00
keyan edf9584391 remove ln adder alert debugging 2021-10-08 07:40:35 -07:00
keyan d3c3657a92 add alert for lightning address 2021-10-08 07:35:57 -07:00
keyan e288f88ec7 share metadata functions 2021-10-07 14:03:54 -07:00
keyan e16c056ef1 attempt description hash encoding 2021-10-07 13:36:12 -07:00
keyan 5928dcf06d make description hash match? 2021-10-07 13:14:11 -07:00
keyan 48ff38dc56 add max to lnaddr 2021-10-07 12:12:49 -07:00
keyan bef68781a7 fully specify ln addr url 2021-10-07 11:53:05 -07:00
keyan eafe474746 WIP lightning addr 2021-10-07 11:37:59 -07:00
keyan a226bac25d fix apollo ssr client imports 2021-09-30 11:05:23 -05:00
keyan ca1a95094c ssr everything 2021-09-30 10:46:58 -05:00
keyan 8c5832c3e6 add boost back to posts & fix header problem 2021-09-24 18:43:30 -05:00
keyan a339516a54 user bios mostly working 2021-09-24 16:28:21 -05:00
keyan 027ba6a048 WIP user bio 2021-09-23 17:18:48 -05:00
keyan 56a3dc9793 make bio form just a textarea 2021-09-23 15:25:38 -05:00
keyan 02c44dca63 refactor replies and full items 2021-09-23 15:09:07 -05:00
keyan e7787e3e67 WIP bios 2021-09-23 12:42:00 -05:00
keyan 0a20f2ea23 WIP tips 2021-09-10 13:55:36 -05:00
keyan 3f8b5894cb small clean up 2021-09-09 14:10:15 -05:00
keyan 968892b661 clean up console messages 2021-09-07 13:04:56 -05:00
keyan 7ffb3fd18a support webln fund and withdrawal 2021-09-07 12:52:59 -05:00
keyan 91a2061342 cache magic - use cache and network except when a result of popstate 2021-09-06 17:36:08 -05:00
keyan 0133c7acc6 open item links in new tab, nofollow links conditionally 2021-09-02 13:11:27 -05:00
keyan 18f1a9f335 center wallet balance text 2021-09-02 12:22:48 -05:00
keyan 56efbcd4fc add underline to wallet links 2021-08-22 10:31:46 -05:00
keyan 09b358397a highlight new notifications 2021-08-19 19:13:32 -05:00
keyan 79cb2d5c27 withdrawl => withdrawal/withdraw 2021-08-19 16:42:21 -05:00
keyan 0afe46c030 continued notification work 2021-08-17 18:59:22 -05:00
keyan c8df41bfa5 fix clickToContext issue for comments, fix non-inner joins, make notification query work 2021-08-17 18:07:52 -05:00
keyan f27aca546d make callback url on login great again 2021-08-12 18:48:27 -05:00
keyan 8a054d55ff provide more desc error in lnurl-auth 2021-08-12 18:46:15 -05:00
keyan 1d6e301b10 fix crashes and report which object failed in walletd 2021-08-12 16:21:56 -05:00
keyan a48cd33db3 edit posts - links and discussions 2021-08-11 15:13:10 -05:00
keyan f92b36699a fix graphql query for rss 2021-08-09 14:47:39 -05:00
João Bordalo ed961b7bdf implements rss feed 2021-07-23 16:45:09 +01:00
keyan d083845a77 auto grow textareas 2021-07-16 12:32:54 -05:00
keyan ae9b4423a4 use rand lightning animation when not logged in 2021-07-16 11:47:18 -05:00
keyan 0f6cb029c3 add plausible and proxy it 2021-07-15 15:49:13 -05:00
keyan 3fa42caa4e add wallet balance to all wallet pages 2021-07-15 11:42:02 -05:00
keyan 129a80e661 1 sat action tooltip 2021-07-08 13:42:57 -05:00
keyan 273cf144b4 ssr item for metatags 2021-07-08 12:27:52 -05:00
keyan eab1c69c7d don't delay capture 2021-07-08 10:14:31 -05:00
keyan 248f5a9967 use env for url 2021-07-07 19:45:02 -05:00
keyan 11f3654f1e don't do seo until we load items 2021-07-07 19:34:23 -05:00
keyan caafd54faa remove unused pages 2021-07-07 19:25:45 -05:00
keyan 68e80b615c working previews 2021-07-07 19:15:27 -05:00
keyan 38df1fcdb7 ssr preview info 2021-07-07 13:34:21 -05:00
keyan 605aac97ab markdown previews 2021-07-01 18:51:58 -05:00
keyan 9a15c228dc add forgetten lnurl-auth files 2021-06-26 22:18:32 -05:00
keyan 2e26e421e7 lnurl-auth 2021-06-26 22:09:39 -05:00
keyan 01922e4b88 notifications done 2021-06-24 18:56:01 -05:00
keyan f968ab7954 paginate stories 2021-06-22 12:47:49 -05:00
keyan b594e11891 a little bit of social/seo work with non-flashing skeleton 2021-06-17 13:24:35 -05:00
keyan 9f6b669e42 fix stacked and spacing on discussion text 2021-06-11 17:38:21 -05:00
keyan f535dc134c small improvements 2021-06-03 16:36:02 -04:00
keyan 17a79b2251 prepare for deployment 2021-06-02 10:23:30 -04:00
keyan 80ff13abd6 finish mvp 2021-05-24 19:08:56 -05:00
keyan a9ea341a7b create reserved usernames 2021-05-21 19:09:11 -05:00
keyan 4f627e2a5c check for usernames on typing 2021-05-21 17:32:21 -05:00
keyan 8a462252af force unique user name 2021-05-21 14:34:40 -05:00
keyan a1d842c7a3 fund error on upvote 2021-05-20 16:32:59 -05:00
keyan a68da87382 be more permissible with links and nofollow when low sats 2021-05-20 14:11:58 -05:00
keyan 0eabe1463d attempts at serializable transactions 2021-05-19 20:09:32 -05:00
keyan 157488ea5d make withdrawls mostly work 2021-05-13 16:19:51 -05:00
keyan ce55fdfe9c withdrawl page 2021-05-13 08:28:38 -05:00
keyan 7a8afd56c3 partial withdrawl 2021-05-12 20:51:37 -05:00
keyan d92fc12187 half done with wallets 2021-05-12 18:04:19 -05:00
keyan 67d1605666 transactional wallet management in plpgsql 2021-05-11 15:29:44 -05:00
keyan bc0389e622 invoiced ... WIP transactions 2021-05-11 10:52:50 -05:00
keyan 4b07edf6f5 ready for invoices 2021-05-06 16:15:22 -05:00
keyan d4d1169058 small ui stuff 2021-05-05 13:13:14 -05:00
keyan 10d848b5bd collapse 'em 2021-04-30 16:42:51 -05:00
keyan bf73e98425 add lightning 2021-04-29 16:58:43 -05:00
keyan f7b92d64c3 improve resolver and provide sats/$ 2021-04-29 10:56:28 -05:00
keyan 2da1ee1a4b fix skeletons 2021-04-28 17:52:03 -05:00
keyan 6ea9ff7e11 a number of style updates 2021-04-28 14:30:14 -05:00
keyan 84b69fc481 ranking mostly 2021-04-27 16:30:58 -05:00
keyan c82c82bb7b mostly clientside render 2021-04-26 19:55:48 -05:00
keyan c626998952 attempts at voting before running into cache issues 2021-04-26 16:55:15 -05:00
keyan 900b70da77 custom auth page 2021-04-24 16:05:07 -05:00
keyan ec3f6b922d a bunch of new stuff 2021-04-22 17:14:32 -05:00