2259 Commits

Author SHA1 Message Date
Keyan
4595dfdda5
Merge branch 'master' into lud18-fixes 2023-10-05 19:33:22 -05:00
SatsAllDay
6b8820b7ab
Fix quote selection reply in iOS Safari (#544)
* Handle quote reply of selections in iOS Safari

Approach borrowed from https://stackoverflow.com/a/72537632

Basically this makes a copy of the selection when the "touchend" event
occurs, so we can use it for processing later

This code listens to that event for each instance of the reply component,
removing the event listener on unmount

* Update docker-compose up command in dev notes

---------

Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com>
2023-10-05 19:32:54 -05:00
keyan
707fa33552 tag freebies appropriately 2023-10-05 18:40:30 -05:00
Satoshi Nakamoto
e9c0c06779 Various LUD-18 fixes
* Debounce the `onAddrChange` event handler when sending to a LN Address,
so we more accurately display the input form for LUD-12 and LUD-18 options

* Remove explicit URI encoding of Payer Data when sending to a LN Addr, since we're getting encoding for free via URLSearchParams

* Append `@stacker.news` to identifier values sent in payer data

* Don't do extra decoding when receiving LUD-18 data
2023-10-05 10:27:01 -04:00
keyan
c77d761ab6 Merge branch 'fix' 2023-10-04 19:35:09 -05:00
keyan
0767b23d80 remove payer data encoding before going to db 2023-10-04 19:34:32 -05:00
ekzyis
425220d8cb
More push notification types (#530)
* Add push notifications for referrals

* Add push notifications for daily rewards

* Add push notifications for deposits

* Add push notifications for earning cowboy hats

* Use streak id to synchronize blurb

* Fix usage of magic number for blurbs

* Fix missing catch

* Add push notification for losing cowboy hats

* Fix null in deposit push notification

* Add push notification for invites

* Don't replace streak push notifications

* Fix missing unit in daily reward push notification title

* Attach sats to payload options instead of parsing title

---------

Co-authored-by: ekzyis <ek@stacker.news>
Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com>
2023-10-04 18:20:52 -05:00
keyan
b3e8280d76 random rewards 2023-10-04 15:56:18 -05:00
SatsAllDay
502bfee072
Mention auto-complete (#532)
* uber rough first pass at mention autocompletes

* support custom limit on topUsers query

* hot keys for selecting user suggestion in markdown input

* query top stackers for mentions with no search query

* refactor UserSuggestion to help with reusability

textarea-caret for placing the user suggest dropdown appropriately

other various code cleanup items to make it easier to use

off by one errors are fun!

various code cleanup and reuse the UserSuggest component in InputUserSuggest to reduce duplication

* change default users to week query

---------

Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com>
Co-authored-by: keyan <keyan.kousha+huumn@gmail.com>
2023-10-04 15:10:56 -05:00
SatsAllDay
e76b8a2915
Add useful dev commands doc for others to reference (#543) 2023-10-04 14:45:21 -05:00
rleed
247744a83c
Add a date selector to the search function (#494)
* add date picker

* lint

* add date picker

* lint

* refine

* fix/finish the date picker UI part

* finish query parameter passing & incremental cleanup

* fix/finish the date picker UI part

* finish query parameter passing & incremental cleanup

* fix bad merge

* fix linting errors

* wrap for mobile

* add date picker

* lint

* add date picker

* lint

* refine

* fix/finish the date picker UI part

* finish query parameter passing & incremental cleanup

* fix/finish the date picker UI part

* finish query parameter passing & incremental cleanup

* fix bad merge

* fix linting errors

* wrap for mobile

* merge glitch?

* enhance a little

---------

Co-authored-by: rleed <rleed1@pm.me>
Co-authored-by: keyan <keyan.kousha+huumn@gmail.com>
Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com>
2023-10-04 14:44:06 -05:00
Austin Kelsay
b3aee502a0
Crosspost discussion items to nostr (#522)
* Crossposting discussion function, crossposting setting migration

* Passing in id, adding relays to test

* Adding checkbox setting for crossposting enabled

* Adding paramaterized event fields to crosspostDiscussion, successfully crossposting discussions

* Cleaning up for rebase

* Removing nostrRelays

* Retry crosspost toast

* Adding nostrCrossposting to settings, fixing migration

* Full flow is working with error surfacing, retries, and skips for a retry

* Updates to error handling/retries for crossposting, fixing settings for crossposting

* Allowing recursive retries for crossposting to specific relays

* Fixing / syncing crossposting settings, cleaning up and seperating out nostr functions

* Cleaning up

* Running linter

* make nostr crossposter a hook

---------

Co-authored-by: Austin <austin@pop-os.localdomain>
Co-authored-by: plebdev <plebdev@plebdevs-MacBook-Pro.local>
Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com>
Co-authored-by: keyan <keyan.kousha+huumn@gmail.com>
2023-10-04 13:47:09 -05:00
SatsAllDay
f6141a6965
Quote reply support on text-based posts and comments (#526)
* Quote reply support on text-based posts and comments

* Clean up the `onQuoteReply` prop usage

* Refactor to use `useImperativeHandle` for Reply

* quote selected text if any, otherwise quote whole item

* Only quote selected text if it's from the item we're replying to, not just any selected text

* add trailing newline to copied text

* onPointerDown for mobile, quote+reply quotes text

---------

Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com>
Co-authored-by: keyan <keyan.kousha+huumn@gmail.com>
2023-10-03 20:12:12 -05:00
SatsAllDay
362f95add9
LUD-18 Wallet implementation (#531)
* LUD-18 Wallet implementation

Query the lightning address provider client-side to learn of capabilities

Conditionally render LUD-12 and LUD-18 fields based on what the remote
server says is supported

Allow identifier, name, and email to be sent from the SN side during the withdrawal flow. Auth seems too complicated for our use case, and idk about pubkey?

* Clear inputs if the new ln addr provier doesn't support those fields

* various ux improvements

* dynamic client-side validation for required payer data

* don't re-init form state on error

* correct min and max amount values

* only send applicable data to graphql api based on payerdata schema

* input type for numeric values (amount, max fee)

* update step for amount and max fee

* Fix identifier optional and field blur

* reuse more code

---------

Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com>
Co-authored-by: keyan <keyan.kousha+huumn@gmail.com>
2023-10-03 18:22:56 -05:00
SatsAllDay
3acaee377b
LUD-18 Service Support (#518)
* first pass of LUD-18 support

* Various LUD-18 updates

* don't cache the well-known response, since it includes randomly generated single use values

* validate k1 from well-known response to pay URL

* only keep k1's for 10 minutes if they go unused

* fix validation logic to make auth object optional

* Various LUD18 updates

* move k1 cache to database

* store payer data in invoice db table

* show payer data in invoices on satistics page

* show comments and payer data on invoice page

* Show lud18 data in invoice notification

* PayerData component for easier display of info in invoice, notification, wallet history

* `payerData` -> `invoicePayerData` in fact schema

* Merge prisma migrations

* lint fixes

* worker job to clear out unused lnurlp requests after 30 minutes

* More linting

* Move migration to older

* WIP review

* enhance lud-18

* refine notification ui

---------

Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com>
Co-authored-by: keyan <keyan.kousha+huumn@gmail.com>
2023-10-03 14:35:53 -05:00
ekzyis
1e417ba670
Image refactor refactor (#541)
* Remove outdated comments about srcSet value

We no longer distinguish between `undefined` and `null` for `srcSet`.

* Fix misleading URL shown

* Update/fix comments in <ImageOriginal>

* Simplify condition when to show image

I think this is not required since `showImage` will always stay false if tab !== 'preview' or me?.clickToLoadImg are true.

* Rename to imgproxyOnly

* Add info to imgproxyOnly setting

* Fix text of markdown links not used on imgproxy errors

* Fix rendering markdown links with text as images

---------

Co-authored-by: ekzyis <ek@stacker.news>
2023-10-03 13:05:04 -05:00
keyan
33c1adde3d use match_phrase_prefix instead 2023-10-02 19:56:54 -05:00
rleed
073fc6b848
allow seaching longer urls (#521)
Co-authored-by: rleed <rleed1@pm.me>
Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com>
2023-10-02 19:55:51 -05:00
ekzyis
c0c691eda5
Add category tag to RSS feed (#534)
Co-authored-by: ekzyis <ek@stacker.news>
2023-10-02 19:20:13 -05:00
SatsAllDay
65fa3cf966
fix singular/plural for invoice deposit notification (#527) 2023-10-02 19:19:20 -05:00
keyan
62b53e1b3e make zoomable image fallback to link, fix styling, refine text component, search highlighting without remark-directive 2023-10-02 19:07:05 -05:00
ekzyis
1e23f787bd
Fix image preview not ignoring privacy setting (#536)
* Fix images not ignoring privacy setting during preview

* Fix image detection not ignoring privacy setting during preview

---------

Co-authored-by: ekzyis <ek@stacker.news>
2023-10-02 07:28:39 -05:00
keyan
2fbd4f8066 fix imgproxy using fill resizes rather than fit 2023-10-02 04:39:56 -05:00
keyan
1ee3d6aa0a small bug fixes 2023-10-01 19:29:07 -05:00
keyan
480a302e00 store image proxy urls during migration 2023-10-01 18:11:23 -05:00
ekzyis
b2b38d8924
Images v2 (#513) 2023-10-01 18:03:52 -05:00
keyan
1f0a4e0729 50% speed up in notifications query with many items 2023-09-29 19:12:23 -05:00
keyan
f2b1c321c2 make saloon muteable 2023-09-29 14:43:25 -05:00
keyan
523b6674b8 make sub changing more intuitive 2023-09-29 14:20:07 -05:00
keyan
7b4a3c056b decrease comment depth to 8 2023-09-28 17:06:07 -05:00
keyan
08e4093877 increase poll choice length to 40 chars 2023-09-28 16:52:11 -05:00
keyan
dfe859eb92 fix top user stack amount to only include tips 2023-09-28 16:26:06 -05:00
keyan
c63ae3c515 fix whenClause in item queries 2023-09-28 16:25:02 -05:00
keyan
0dad69111e add a tag to zap receipts 2023-09-28 15:52:59 -05:00
keyan
4bd489a36a mutes 2023-09-28 15:02:25 -05:00
keyan
b6cb895871 opg => fwd 2023-09-27 13:20:16 -05:00
keyan
cfb8fa7014 remove expiration when invoice is confirmed 2023-09-27 12:19:56 -05:00
keyan
13926d57da handle zaps in satistics 2023-09-26 20:59:15 -05:00
keyan
51299820b9 fix module issues when running worker 2023-09-26 20:33:54 -05:00
keyan
cf5b296a9f add prism logo 2023-09-26 16:44:57 -05:00
keyan
683e06bab4 move push notification calls to their own file 2023-09-26 15:27:55 -05:00
keyan
f27cd2d6dd protect against comment root not having forwards 2023-09-26 15:15:31 -05:00
keyan
32847670e2 reduce duplication of invoicable code 2023-09-26 15:15:09 -05:00
keyan
b740eeb2c4 fix subpackage linting #523 2023-09-26 14:58:36 -05:00
keyan
370e3c1c48 raise boost minimum to 25k, enhance editing boost, JIT fund editing costs 2023-09-25 19:54:35 -05:00
keyan
374cc26224 indicate commenter is part of forwarded group 2023-09-25 16:47:24 -05:00
rleed
2a7267a35a
Add OpenSearch to docker setup for development (#509)
* add containers for OpenSearch

* switch OpenSearch Dashboards to http

* add script to take care of index/mapping on first run

* limit mount in opensearch container to only the necessary scope

* handle both docker and non-docker dev setups

* cleanup

* make opensearch work in docker dev

---------

Co-authored-by: rleed <rleed1@pm.me>
Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com>
Co-authored-by: keyan <keyan.kousha+huumn@gmail.com>
2023-09-24 18:24:04 -05:00
SatsAllDay
8017355924
Lightning strike on donation, if enabled. Else success toast (#517)
* Lightning strike on donation, if enabled. Else success toast

* remove extra toast from merge

---------

Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com>
Co-authored-by: keyan <keyan.kousha+huumn@gmail.com>
2023-09-24 15:10:44 -05:00
SatsAllDay
9c774d596b
Support JIT invoicing on donations to rewards pool (#515)
* Support JIT invoicing on donations to rewards pool

Now you can just-in-time fund your account to donate to SN's reward pool.

You can also donate without an account via the @anon account, also using
JIT invoices.

* Ensure donate amount is numeric

* Explicit error checking for hash being required for invoice validation

* let donation exceptions bubble for jit funding

---------

Co-authored-by: keyan <keyan.kousha+huumn@gmail.com>
2023-09-24 14:38:37 -05:00
SatsAllDay
9f333518c1
Toast success and danger for donate action (#511)
Danger case was already handled by the common `Form` component,
but success wasn't happening. I like having feedback on actions like this one.
Now, the danger toast is also specific to the donate action, and not just the underlying
JS error that occurred (which is logged, instead).
2023-09-23 20:26:12 -05:00