Note:
- This is an experimental demo for the experimental DDS AttributableMap
- The current behavior displays a potential bug where there is a slight delay in showing the attribution. It is probable that this bug is caused by a lack of synchronization between the
setCore
andsetAttribution
functions. We are addressing the bug right now.
Hit Counter is a simple demonstration that showcases how to use the mixinAttributor
and the experimental DDS AttributableMap
.
The user can click on the button to increment the count value by one. Upon updating the count value, the corresponding attribution key will also be updated.
The attributor then retrieves the attribution information and stores it, allowing all co-authors to automatically view the latest timestamp at which any author pressed the hit button.
The attribution information, which consists of the user name and the timestamp of the most recent edit, is displayed at the bottom. Please refer to Attributor and AttributableMap for more details
When the app loads it will update the URL. Copy that new URL into a second browser and note that if you click the button in one browser, the counter value and attribution information in other browsers are synchronized as well.
You can run this example using the following steps:
- Enable corepack by running
corepack enable
. - Run
pnpm install
andpnpm run build:fast --nolint
from theFluidFramework
root directory.- For an even faster build, you can add the package name to the build command, like this:
pnpm run build:fast --nolint @fluid-example/attributable-map
- For an even faster build, you can add the package name to the build command, like this:
- In a separate terminal, start a Tinylicious server by following the instructions in Tinylicious.
- Run
pnpm start
from this directory and open http://localhost:8080 in a web browser to see the app running.
The project uses the following distributed data structures:
- SharedDirectory - root
- AttributableMap - HitCounter
There are many ways to contribute to Fluid.
- Participate in Q&A in our GitHub Discussions.
- Submit bugs and help us verify fixes as they are checked in.
- Review the source code changes.
- Contribute bug fixes.
Detailed instructions for working in the repo can be found in the Wiki.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.
This project may contain Microsoft trademarks or logos for Microsoft projects, products, or services. Use of these trademarks or logos must follow Microsoft’s Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
Not finding what you're looking for in this README? Check out fluidframework.com.
Still not finding what you're looking for? Please file an issue.
Thank you!
This project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.
Use of these trademarks or logos must follow Microsoft's Trademark & Brand Guidelines.
Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.