this is a simple static text page showing current version from
the npm package and git commit hash at which the app was built.
it's served at /about.html but i didn't link it from the root.
not sure where the best place is.
This is an approach to close the reply-to-form automatically when
focus is lost and only if the input is empty. A second way to close
the reply-to-form is provided by toggling the reply icon.
Text notes longer than 280 are shortened and appended with '…' to
indicate that this note can be expanded, but this dotdotdot was
real text and was not removed once the note is expanded.
Changed to showing the dots through CSS and only if the attribute
exists, so it does not show on expanded notes.
Loading images from random url leaks meta data to other servers.
Enabled showing kind 0 picture from noxy (nostr proxy),
see https://git.qcode.ch/nostr/noxy
Only href that are a valid url and use http(s) should be allowed
to prevent malicious urls such as 'javascript:alert(1)'.
Kept the fallback to the speak bubble if there is no kind 0 event
for this pubkey or picture is missing.
Pub and private key settings only showed errors if both values were
truthy, but it did not validate if one input was falsy, in which
case it only showed the last error.
Removed truthy check as it is not needed.
Safari does not take the addressbar into account when using 100vh,
this is the cauase that the navigation is sometimes hidden when
the user scrolls up/down.
changed to 100dvh with fallback to 100vh.
- writing a new message is now presented in full-screen, so that
there are no distractions, i.e. other posts
- added back button and listen to esc key to close new message
- on portrait mode the navigation buttons are now positioned at
the bottom of the screen
- write new message botton (bubble) is also positioned bottomright
- replies now use a line to the last reply instead of indentation,
better use of available space, especially on small screen
- ignore newlines at the end of a post
- added subtile growin effect to the multiline textfield, to hint
that the textarea is growing with more content
Send button should be disabled if there are only white spaces or
newlines, trimming only right as white spaces at the beginning
could mean somethig i.e in markdown.
- use growing textarea input to support multiline textnotes
- keep replyTo id in localstorage instead of global variable
- render reply to form on load if there was a replyTo in storage
- added favicon.ico to get rid of anoying logs in the future
- clicking the idea bubble brings back the text input field
- stop accidentally submitting the reply form
- updated idea cloud to dark/light mode neutral gray
- contact list not needed yet, disabled
- add a detailed list of reactions in star tooltip
- removed debug debounce was for testing chronological feed order
- started username prototype
Added support for starring.
Stores recation events in a reactionMap, so rendering can use it
later.
Improved reply to replies, by keeping a separate replyDomMap.
Changed from heart to star, reason: thumbsup or a heart are good
for positive events, but not so suitable to react to a bad event.
So currently negavtive votes are just counted as a star as well.
Did not add another dom map, but just querySelector in case an
existing star needs to be updated later.
Used different CSS-only tab technique. The implementation before
messed up the whole height of the page and used unnecessary
absolute positioning.
Added comment icon from MFG Labs iconset (SIL)
- https://github.com/MfgLabs/mfglabs-iconset
Added outlined and filled heart from Elusiv icons (SIL)
- https://github.com/dovy/elusive-iconfont
Time ago seconds should be rounded.
Keeping current reply info so it can be accessed later to
publish the reply.
Before only known replies were rendered, now incoming replies
get added to the existing text note instantly. This needs to
create a reply container if this is the first reply of this event.
Added time ago formatting and a helper function that switches
between relative time (if event < 24h) or absolute formatted time
(if older than 1 day).
Styled profile image to be aligned at the top together with the
event metadata and content.
Still need to decide on which relays to enable.
JavaScript lint fixes.
chronological order: Getting there..
cleanup: removed debounce code for now
keep also recommend server events in the dom map, not sure if just
everything should be in the map.
Events should be ordered by created_at.
The randomly incoming events should be injected to their closest
event sibling. Keeping a map of eventIds and dom nodes to reference
and inject the new events.
An alternative to keeping a map could be to add a data-attribute
to each event and use querySelector. It is a trade-off os using
more memory in order to not query the dom tree.
- disabled user picture, loading external resources leaks metadata
and is bad for privacy.
- refactored code to share profile rendering.
- wip: keep a contact list to display user follows otheruser
- reverse timeline
- add publish test button
- renamed variables to pubkey, privatekey
- subscribe to self (currently only on load)
- listen to more events before closing
- change max-width to apply ti all tabs instead of just forms
- use monospace font for buttons and labels
- add tiny 2px border radius to buttons and prepare bottombar
- changed private-key input to type password
- added toggle to show private-key
- added key-generated, key-saved success messages
- changed global font size
- upadted colors (especially light mode)
- unsubscribe after a few messages for testing