Zulip 服务器和 Web 应用程序。开源团队聊天可帮助团队保持高效和专注。
Go to file
Prakhar Pratyush 45e91daa14 hotkey: Remove the usage of deprecated keypress event.
This commit removes the deprecated `keypress` event.

Now, we use the `keydown` event to handle all the cases.

Earlier, we used `keypress` because it allowed us to distinguish
between lowercase and uppercase characters using `event.which`.

For example:
* For 'r':
  * keypress.which = 114
  * keydown.which = 82
* For 'R':
  * keypress.which = 82
  * keydown.which = 82

As shown, `keydown.which` cannot distinguish between 'r' and 'R',
which is why `keypress` was helpful.

Now, modern browsers support `event.key` on `keydown`, which directly
gives 'r' or 'R' as needed. This makes `keypress` unnecessary, and
we can safely rely on `keydown` with `event.key` to get the exact
character.

An earlier commit in this PR #34570, in which we replaced
the `event.which` with `event.key` plays a major role as a prep
commit to help removing `keypress` event in this commit.
2025-05-29 11:35:57 +05:30
.github actions: Add test upgrade from 10.0. 2025-04-03 11:37:42 -07: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 stream: Add subscriber_count field. 2025-05-13 17:36:53 -07:00
api_docs navigation_views: Add backend for navigation views in left sidebar. 2025-05-23 16:25:08 -07:00
confirmation confirmation: Allow using used confirmation objects if required. 2024-12-02 10:21:03 -08:00
corporate billing: Update CustomerPlan.invoiced_through documentation. 2025-05-20 07:05:02 -07:00
docs docs: Update comment, docs links to Format.JS. 2025-05-28 09:10:15 -07:00
help slack_import: Tweak instruction to get slack bot user OAuth token. 2025-05-28 17:18:07 -07:00
help-beta help-beta: Pass fill property to component instead of str manipulation. 2025-05-16 11:05:39 -07:00
locale i18n: Update translations from Transifex. 2025-05-13 12:51:11 -07: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 process_exporter: Monitor the standalone email_server. 2025-05-20 07:03:23 -07:00
scripts email-mirror: Remove HTTP interface. 2025-05-19 16:39:44 -07:00
static svg: Convert CRLF line-endings to LF. 2025-05-22 15:59:55 -07:00
templates templates: Update deactivated organization template for deleted data. 2025-05-28 17:32:29 -07:00
tools help-beta: Convert tabs syntax to equivalent MDX syntax. 2025-05-28 16:42:16 -07:00
web hotkey: Remove the usage of deprecated keypress event. 2025-05-29 11:35:57 +05:30
zerver templates: Update deactivated organization template for deleted data. 2025-05-28 17:32:29 -07:00
zilencer stream: Add subscriber_count field. 2025-05-13 17:36:53 -07:00
zproject navigation_views: Add backend for navigation views in left sidebar. 2025-05-23 16:25:08 -07:00
.codecov.yml codecov: Change threshold to use percentage syntax. 2019-07-20 14:37:04 -07:00
.codespellignore corporate: Add more detail to job description. 2025-04-01 18:36:54 -07:00
.editorconfig lint: Further recognize more JavaScript file extensions. 2024-11-10 17:52:49 -08:00
.gitattributes gitattributes: Diff SVGs as code. 2025-05-22 15:59:55 -07: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: Add a few more mailmap entries. 2025-03-20 11:07:18 -07:00
.npmignore
.prettierignore marked: Rename to *.cjs. 2024-11-13 09:18:56 -08:00
.readthedocs.yaml install-uv: Upgrade uv from 0.6.3 to 0.6.6. 2025-03-14 17:31:50 -07: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: Better explain taking over abandoned issues. 2025-03-06 10:33:00 -08:00
Dockerfile-postgresql docs: Fix grammar errors found by mwic. 2023-10-09 13:24:09 -07:00
eslint.config.js eslint: Enable no-jquery/no-sizzle. 2025-05-18 16:22:15 -07:00
LICENSE license: Move copyright notice from LICENSE to NOTICE. 2021-02-05 09:28:12 -08:00
manage.py email-mirror: Add a standalone server that processes incoming email. 2025-05-19 16:39:44 -07:00
NOTICE docs: Bump copyright year. 2021-02-05 09:28:15 -08:00
package.json upload: Fix uploading the same file twice in the same session. 2025-05-28 09:23:51 -07:00
pnpm-lock.yaml upload: Fix uploading the same file twice in the same session. 2025-05-28 09:23:51 -07: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 python: Add pydantic-partials dependency. 2025-05-20 13:25:06 -07: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 tsconfig: Enable erasableSyntaxOnly. 2025-03-17 08:43:19 -07:00
uv.lock python: Add pydantic-partials dependency. 2025-05-20 13:25:06 -07:00
Vagrantfile Upgrade development environment to Ubuntu 22.04. 2024-04-01 13:27:39 -07:00
version.py upload: Fix uploading the same file twice in the same session. 2025-05-28 09:23:51 -07: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.