This is not a legal document, members should follow the spirit of this code. Everybody makes mistakes, but second chances do not have priority over others’ comfort. Conduct Please be kind, courteous, and friendly. There’s no need to be mean or rude. Please communicate in public. This is a public community, and conversations should happen in the main server unless the matter under discussion is sensitive or otherwise private. Please read the room. This is a large community with many different humans. Before posting in a channel with hundreds of members, we ask that you take the time to read the room. Please use gender neutral language. If somebody requests you use a pronoun, please respect their wishes. Please respect that people have differences of opinion. Every design or implementation choice carries a trade-off and numerous costs. There is seldom a single right answer. Please keep unstructured critique to a minimum. Address the main topic at hand before pursuing a tangent. Please use a display name that represents you. Names that detract from a friendly, safe and welcoming environment for all will be addressed. Any form of unacceptable behavior will not be tolerated. You will be excluded from interaction if you insult, demean, or harass anyone. In particular, behavior that excludes people in socially marginalized groups will not be tolerated. We interpret the term “unacceptable behavior” as the definition in the Citizen Code of Conduct (https://github.com/stumpsyn/policies/blob/master/citizen_code_of_conduct.md#4-unacceptable-behavior). Likewise any destructive or attention-stealing behavior is not welcome. Private harassment is also unacceptable. No matter who you are, if you feel you have been or are being harassed or made uncomfortable by a community member, please contact one of the staff. Whether you’re a regular contributor or a newcomer, we care about making this community a safe place for you and we’ve got your back. If someone takes issue with something you said or did, resist the urge to be defensive. Stop doing what it was they complained about and apologize. Even if you feel you were misinterpreted or unfairly accused, chances are good there was something you could’ve communicated better. We are all here first and foremost because we want to talk about cool technology. You will find that people will be eager to assume good intent and forgive as you earn their trust. Adapted from the Reactiflux code of conduct (https://reactiflux.com/conduct), which is itself adapted from the Rust code of conduct (https://www.rust-lang.org/policies/code-of-conduct).
All Posts
5
6 hours ago
I should be able to filter messages that appear on the side bar or threaded comments, why is that not available ?
3
11 hours ago
Hi, we are integrating Cord into our app to support commenting, and the process has been seamless so far. However, we want the ability for our users to email invite links for users within their org who haven't yet created an account in our app. Is this possible with Cord?
Hey team, I wanted to test our new chat on mobile, and realised the behaviour of the composer is pretty horrible, if not unusable. To give you some context: I was just writing some text using the composer I have a Samsung galaxy S21+ (Android) - no idea on Apple side, I'll check What happens? I guess due to the way input are handled (different from a basic html text area), when I 1/ Use a recommended word on my keyboard fails, it adds the full word and does not replace the start e.g. I type "Compo" keyboard suggests the word "Component" I click on this suggestion then what I have in the composer is "CompoComposer" (instead of removing "Compo") 2/ Erasing a word messes up everything e.g. When I hold the delete button it just starts erasing one letter or 2 and then skips the word (which is not erased) and the cursor goes back to the beginning It's super weird, but we'd really love to be mobile friendly, so this is going to be a must 🙏 Thank you for your help as always ! Keep up the awesome work
We started integrating with Cord and we want to display messages using our own custom component. Everything works great but we don’t know how to make edition work. Is it possible to use `Composer` component or some other to edit existing message? Do you have maybe some example of it? We would like to avoid writing custom editor because the one provided by you works really well.
11 hours ago
Hi, we wanted to share an update with you all. In the past, you’ve asked for increased customization of Cord components, and we’ve told you that we were working on something. Well, today is the day, we’d like to share the beta of our v2 components (Thread, Message, Composer, Avatar, and constituent components) that allow for replacement. With these new components, you can get all the behavior that you normally get but swap out any particular piece for your own component. Don’t like our Avatar hover behavior, add your own. Want to add a custom menu item to Threads, go ahead. Want the composer to brew a cup of coffee on every key press, totally doable. This is designed to increase flexibility for you to build the app you want to build. Additionally, these components now all render in your React tree without going through web components so you should no longer see things rerender on different React cycles. We are really excited about what can be done with this, and we’d love your feedback on it. We are super happy to discuss it here on community.cord.com. We want to make sure that what we have built really does give you the functionality and flexibility you’ve asked for. To use this, you’ll need to install the Cord SDK at version 1.42.1 (or later). Docs for the new components are available at https://docs.cord.com/components?version=2.0. There is more documentation at https://docs.cord.com/customization/custom-react-components about the capabilities, and a working example that shows how to turn our thread into one like github (https://docs.cord.com/customization/custom-react-components/tutorial).
2
Thursday
Hey team, We are building a messaging system and we use thread.useThreadCounts API to get unread count both by providing groupID to get count for a given channel and without specifying it to get it for all the channels. The problem is that daily we are removing all the channels in our database but users stay. So we end up with some "ghost" unreads that we cannot see anymore in the app. To resolve this issue we would like to provide to filters an array of group IDs to show it only for channels that we currently have in the database. Do you think it would be possible to support it?
1
Wednesday
Hey 👋 I am seeking clarification on the optimal setup for users & threads as we are implementing a Proof of Concept (PoC) on our platform. Should users be created concurrently with the initiation of a group thread, involving only those directly participating? Or would it be more efficient to create users in advance importing our user base in Cord? Concerning moderation within these threads, I would like to understand whether your platform supports built-in moderation features or rights management. Have you addressed similar requirements with other clients, and could you share any insights or best practices? You are building an amazing product, thanks 👍️
Hey! I'm trying to simulate the collapsed state of this thread, but I don't see any handler that is called when the "Reply" button is clicked. How should I detect that the user clicked on that button to update `collapsed` to `true`?
1
Tuesday
Hey, there! We have a use case where we'd like to filter comments by the lack of a field in the location object.
We are trying to create a messaging system similar to Slack, Discord, etc. and we are looking for a bit of guidance. Do you have an example of such an app? I heard that you have something similar built already 😉
Composer component onSend prop does not return form event as callback, only thread id and other thread information
2
Tuesday
How to retrieve an auth-token with Python? https://docs.cord.com/get-started/integration-guide/generate-an-auth-token The rest tab says TBD.
We are trying to create a messaging system similar to Slack, Discord, etc. and we are looking for a bit of guidance. We created a table called Channel on our side and whenever a user creates a new channel we also create Group on your side and attach users as members of this group. After that we are creating new threads using the Composer component providing groupId of the previously created group. To display it we use React hook thread.useThreads providing groupID as a filter. To create threaded messages we send new messages using the Composer component providing threadId and groupId. We would like to ask if you think that this structure is correct one or would you recommend some changes here? Also, we would like to ask you for some guidance in terms of notifications. We would like to display a notification when there are some new replies in the channel (meaning new threads for the given group) but preferably we would like to have one notification per channel (to not spam the user), is it possible to do? Also, is it possible to mute notifications for specific channel (group)?
We spotted that sometimes the Composer component disappears and new messages are not delivered. We cannot find exact time when it's happening as it happened only a few times. It looks like some connection issue but I don't know how to confirm it. Initially I thought it's connected with hot module reloading but it also happened on the staging environment as well. Currently we have <CordProvider> component mounted pretty high in components tree that is fetching the clientAuthToken from backend when app is bootstrapped. Should we somehow take care of refreshing this token periodically? From what I saw the token generated on the backend is valid only for one minute so I guess you must be doing some refreshes in the background.
3
Apr 18
How long will messages stay in your DB? Can they be deleted automatically after a period of time?
Hey there :) Do you have any tricks to style the composer a bit more? Maybe a CSS trick I'm missing or something else ? I'd love to make it look more or less like this (chaging the icons of @, emoji and attachement buttons + changing the text in the button, etc...)
We want to internationalize (i18n) our app. Can we control the strings Cord uses for tooltips, buttons and other components?
1
Apr 16
Is there a way to get the message and other data?
Hey folks, As mentioned in the docs, a Group can only have two status: status optional "active" | "deleted"Whether this group is active or deleted. Attempting to log into a deleted group will fail. Is there a way to mark a Group as "inactive / deactivated / archived"? The use case is to set a Group as "inactive" to stop email notifications. It can be made "active" again to resume notifications. Will appreciate any help on this.
Passing composerDisabled still allows writing a message (although sending the message is not enabled)
Using the REST API to fetch all the messages in a thread. I call: const messageData = await fetch("https://api.cord.com/v1/threads/<my thread id>/messages?sortDirection=ascending"); That works fine. But I also want to specify a limit. Some of the threads I need to fetch have hundreds or thousands of messages. I would use the /messages API, but I don't see a way to specify the thread ID?
1
Apr 12
We have a problem with building our app when using Cord. We use Repack as our development build system and we get the following error: ``` Cannot create property 'displayName' on number 'Infinity' TypeError: Cannot create property 'displayName' on number 'Infinity' at ./node_modules/.pnpm/phosphor-react@1.4.1_react@18.2.0/node_modules/phosphor-react/dist/icons/Infinity.esm.js (http://localhost:4200/vendors~node_modules_pnpm_react-final-form-arrays_3_1_4_final-form-arrays_3_1_0_final-form_4_~a3a081.js:175423:22) ``` The error is coming from the phosphor-react which is a dependency of Cord. From what I found they fixed it in the newer versions of this lib. Do you have some suggestions on how to fix it?
2
Apr 11
Client auth token expiration
Solution1
Apr 10
Hey community :) Is there an expiration period for client auth token? If so - what is the best practice to renew the token in a React application? In the example here: https://docs.cord.com/get-started/integration-guide/generate-an-auth-token The token is only generated once when the app renders. In other libraries that require auth token, there's an option for token providing function where invalidation can occur.
Might be a silly question, but I am not able to figure out how to generate the JWT token I need to send the auth endpoint (it will be called from Python which is not on your supported library list). Do you have a reference for how to generate the token in Python?
Previously, location filters in some places, such as the /v1/threads REST API, defaulted to being exact match, and in others they defaulted to being partial match. We've changed so that location filters default to exact matching everywhere. If you want partial matching behavior, be sure to pass your filter as { value: yourLocationFilter, partialMatch: true }.
2
Apr 9
I want to learn how Cord makes live messages work, does it use websockets, short polling...
Hi! How customizable are the notifications with extra information? And how can our users manage the notifications and what can they manage? (e.g, mute responses from a single thread, stop getting email notifications, etc.)?
We are very interested in adding collaborative commenting to our app and love Cord. Out of curiosity do you guys have-or-are-considering multiplayer editing (e.g. being able to edit a doc together?) like Liveblocks?
Can you make conversations private in Cord? our customers want to be able to comment but might not want non-employees to view the message.
I see that you can delete threads, which is great. Is there a way to delete threads in bulk based on whether they are associated with a particular group?
Can we take a list of URLs in our product and "unresolve" resolved threads for those? Can we also display resolved cases right in our interface?