Adds button in the left menu to start controlled "Display mode" for peers - aka "Property demo" by location.
During the demo all users can browse through available pictures of the same property individually, but the property itself can be changed only by Initiator.
Description:
Two proxy API routes were added to store API keys & endpoint securely on the server.
The aggregated data (property list, adjusted according to a user-specified location) is calculated on the initiator's client side and stored in indexdb.
When the carousel is initiated, it signals its "actions" to peer users via news events. The first "start" event goes with a payload of an aggregated property list, through which everybody will browse afterwards.
deps:
splidejs - carousel library
idbkeyval - to interact with indexDb
** Add keys & endpoint to .env file to run.
I tried to stay consistent with the techniques used in the rest of the codebase, however there are some key points to consider:
introducing typescript could be very beneficial for dx and overall type safety
a build system (with auto-reload of assets) and use of modules would be very helpful
extensive use of global scope may pose a problem in some cases
Title: Adds display mode for peers
TLDR;
Adds button in the left menu to start controlled "Display mode" for peers - aka "Property demo" by location. During the demo all users can browse through available pictures of the same property individually, but the property itself can be changed only by Initiator.
Description: Two proxy API routes were added to store API keys & endpoint securely on the server. The aggregated data (property list, adjusted according to a user-specified location) is calculated on the initiator's client side and stored in indexdb. When the carousel is initiated, it signals its "actions" to peer users via news events. The first "start" event goes with a payload of an aggregated property list, through which everybody will browse afterwards.
deps:
** Add keys & endpoint to
.env
file to run.I tried to stay consistent with the techniques used in the rest of the codebase, however there are some key points to consider: