Zulip 服务器和 Web 应用程序。开源团队聊天可帮助团队保持高效和专注。
Go to file
ubaidrmn 1a97fecdb8 compose: Fix preview not being updated when compose textarea is updated.
In preview mode, background updates to the compose box don’t refresh
the preview. For example, canceling an ongoing file upload after
activating preview mode still displays "uploading."

This commit extracts the preview rendering logic from the
show_preview_area function into a new function, `render_preview_area`,
and calls it on the compose textarea’s change event to ensure the
preview updates whenever the textarea is modified.

However, this introduces a race condition where the latest request is
not always reflected in the preview. To resolve this, we introduce a
state variable, `preview_render_count`, which is used to ensure only
the latest preview update is applied.

Fixes #33589.
2025-03-03 17:38:27 -08:00
.github requirements: Migrate to uv. 2025-02-24 22:29:24 -08:00
.tx i18n: Merge zh_Hant into zh_TW. 2024-12-10 10:00:45 -08:00
.vscode vscode: Recommend remote development extension. 2021-11-03 16:03:46 -07:00
analytics counts: Fix current_month_accumulated_count_for_user bounds. 2025-02-28 15:15:21 -08:00
api_docs api: Rename edit typing endpoint to /messages/{message_id}/typing. 2025-02-28 13:20:46 -08:00
confirmation confirmation: Allow using used confirmation objects if required. 2024-12-02 10:21:03 -08:00
corporate stripe: Delete fixed price plan offer if customer on comp access plan. 2025-02-28 17:42:04 -08:00
docs docs: Improve Upgrade Zulip documentation. 2025-03-03 15:37:43 -08:00
help help: Improve explanation of Zulip's topics for users from other apps. 2025-03-03 13:27:49 -08:00
help-beta dependencies: Upgrade JavaScript dependencies. 2025-02-26 16:20:47 -08:00
locale i18n: Update translations from Transifex. 2025-02-28 16:46:41 -08:00
patches dependencies: Upgrade JavaScript dependencies. 2025-01-29 15:04:09 -08:00
pgroonga migrations: Import BaseDatabaseSchemaEditor from its canonical module. 2023-03-05 14:46:28 -08:00
puppet requirements: Migrate to uv. 2025-02-24 22:29:24 -08:00
scripts install-node: Upgrade Node.js from 22.12.0 to 22.14.0. 2025-02-26 16:20:47 -08:00
static integrations: Move big-blue-button logo to the default path. 2025-02-24 17:04:58 -08:00
templates help: Document new "who can subscribe" channel setting. 2025-02-27 13:27:44 -08:00
tools message: Make is_modifying_message a mandatory kwarg. 2025-02-28 10:10:33 -08:00
web compose: Fix preview not being updated when compose textarea is updated. 2025-03-03 17:38:27 -08:00
zerver compose_paste: Use katex-mathml for inline math filtering. 2025-03-03 14:30:38 -08:00
zilencer zilencer: Log bouncer-side info when RemoteRealm creation fails. 2025-02-19 17:11:35 -08:00
zproject api: Rename edit typing endpoint to /messages/{message_id}/typing. 2025-02-28 13:20:46 -08:00
.codecov.yml codecov: Change threshold to use percentage syntax. 2019-07-20 14:37:04 -07:00
.codespellignore tornado: Use Signal.asend. 2025-02-14 15:27:51 -08:00
.editorconfig lint: Further recognize more JavaScript file extensions. 2024-11-10 17:52:49 -08:00
.gitattributes .gitattributes: Mark *.bmp, *.bson, *.mp3, *.pdf as binary. 2022-02-07 18:51:06 -08:00
.gitignore requirements: Migrate to uv. 2025-02-24 22:29:24 -08:00
.gitlint lint: Update line-length for commit message to 72 in gitlint. 2023-05-01 10:35:52 -07:00
.mailmap mailmap: Canonicalize name for Kunal Sharma. 2024-07-25 11:23:44 -07:00
.npmignore Add proxy notes to new README.dev.md troubleshooting section. 2016-03-29 21:54:05 -07:00
.prettierignore marked: Rename to *.cjs. 2024-11-13 09:18:56 -08:00
.readthedocs.yaml requirements: Migrate to uv. 2025-02-24 22:29:24 -08:00
.sonarcloud.properties tools: Configure Zulip to be scannable by SonarCloud. 2020-06-24 12:41:17 -07:00
CODE_OF_CONDUCT.md linter: Add check for comma after "e.g." in md files. 2024-07-05 15:36:24 -07:00
CONTRIBUTING.md contributor docs: Reorganize contributor guide. 2025-02-12 12:58:10 -08:00
Dockerfile-postgresql docs: Fix grammar errors found by mwic. 2023-10-09 13:24:09 -07:00
eslint.config.js eslint: Unify JavaScript and TypeScript configs. 2025-02-27 13:29:41 -08:00
LICENSE license: Move copyright notice from LICENSE to NOTICE. 2021-02-05 09:28:12 -08:00
manage.py ruff: Fix UP007 Use X | Y for type annotations. 2024-07-13 22:28:22 -07:00
NOTICE docs: Bump copyright year. 2021-02-05 09:28:15 -08:00
package.json dependencies: Upgrade JavaScript dependencies. 2025-02-26 16:20:47 -08:00
pnpm-lock.yaml dependencies: Upgrade JavaScript dependencies. 2025-02-26 16:20:47 -08:00
pnpm-workspace.yaml help-beta: Create initial starlight project. 2024-08-02 18:18:01 -07:00
prettier.config.js web: Set "type": "module" and convert various CJS files to ESM. 2024-11-13 09:18:56 -08:00
pyproject.toml pyproject: Remove py3dns. 2025-02-25 11:53:08 -08:00
README.md contributor docs: Reorganize contributor guide. 2025-02-12 12:58:10 -08:00
SECURITY.md docs: Update .html links pointing to "Upgrade Zulip" or "Modify Zulip". 2023-08-11 16:49:32 -07:00
stylelint.config.js web: Set "type": "module" and convert various CJS files to ESM. 2024-11-13 09:18:56 -08:00
tsconfig.json requirements: Migrate to uv. 2025-02-24 22:29:24 -08:00
uv.lock pyproject: Remove py3dns. 2025-02-25 11:53:08 -08:00
Vagrantfile Upgrade development environment to Ubuntu 22.04. 2024-04-01 13:27:39 -07:00
version.py version: Update version following 10.0-beta1. 2025-02-28 17:23:02 -08:00

Zulip overview

Zulip is an open-source team collaboration tool with unique topic-based threading that combines the best of email and chat to make remote work productive and delightful. Fortune 500 companies, leading open source projects, and thousands of other organizations use Zulip every day. Zulip is the only modern team chat app that is designed for both live and asynchronous conversations.

Zulip is built by a distributed community of developers from all around the world, with 74+ people who have each contributed 100+ commits. With over 1000 contributors merging over 500 commits a month, Zulip is the largest and fastest growing open source team chat project.

Come find us on the development community chat!

GitHub Actions build status coverage status Mypy coverage Ruff code style: prettier GitHub release docs Zulip chat Twitter GitHub Sponsors

Getting started

You may also be interested in reading our blog, and following us on Twitter and LinkedIn.

Zulip is distributed under the Apache 2.0 license.