Compare commits

..
16 Commits
Author SHA1 Message Date
NotAlexNoyle 314611d696 Update README.md 2024-05-04 16:01:00 +00:00
NotAlexNoyle c4d420ae0f Update config.json 2024-05-04 15:58:49 +00:00
NotAlexNoyle 7bd68cbcf9 Bigger logos 2024-05-04 15:42:53 +00:00
NotAlexNoyle 2b79d28cb8 Remove most Cinny branding 2024-05-04 15:39:12 +00:00
NotAlexNoyle 8d4b4f69c5 Merge branch 'dev' of github.com:NotAlexNoyle/Versi into dev 2024-05-04 14:42:16 +00:00
NotAlexNoyle 1f09363dd1 Add versi alpha logo 2024-05-04 14:41:37 +00:00
NotAlexNoyle d88ff827b4 Update README.md 2024-05-04 01:46:00 +00:00
NotAlexNoyle d2235df968 Update README.md 2024-05-04 01:39:06 +00:00
NotAlexNoyle a9a6bc6619 It builds! + Update dependencies 2024-05-03 19:36:45 +00:00
NotAlexNoyle b995857a9c Update README.md 2024-05-03 17:44:58 +00:00
NotAlexNoyle 2de9b63458 Update SECURITY.md 2024-05-03 17:42:32 +00:00
NotAlexNoyle ad2471820f Rename to Versi 2024-05-03 17:36:51 +00:00
NotAlexNoyle 7caa40c0c9 Update README.md 2024-05-03 17:36:15 +00:00
NotAlexNoyle 03a19997af Merge pull request #1 from MyBeansAreBaked/dev
Close settings and search with escape key
2024-05-03 13:27:24 -04:00
WhkSoft ad21092f6c some change 2023-06-09 23:38:52 +08:00
Beans 41f4dc1c12 Close settings and search with escape key
Adds a new event REQUEST_CLOSE, which is triggered by pressing escape.
2022-09-10 10:15:40 +01:00
44 changed files with 2724 additions and 2196 deletions

No files matched your search

+1 -3
View File
@@ -1,3 +1 @@
github: ajbura
liberapay: ajbura
open_collective: cinny
github: true-og
+8 -8
View File
@@ -6,9 +6,9 @@ body:
attributes:
value: |
## First of all
1. Please search for [existing issues](https://github.com/ajbura/cinny/issues?q=is%3Aissue) about this problem first.
2. Make sure Cinny is up to date.
3. Make sure it's an issue with Cinny and not something else you are using.
1. Please search for [existing issues](https://github.com/NotAlexNoyle/Versi/issues?q=is%3Aissue) about the problem first.
2. Make sure Versi is up to date.
3. Make sure it's an issue with Versi and not something else you are using.
4. Remember to be friendly.
- type: textarea
@@ -40,12 +40,12 @@ body:
id: info
attributes:
label: Platform and versions
description: "Provide OS, browser and Cinny version with your Homeserver."
description: "Provide OS, browser and Versi version with your Homeserver."
placeholder: |
1. OS: [e.g. Windows 10, MacOS]
2. Browser: [e.g. chrome 99.5, firefox 97.2]
3. Cinny version: [e.g. 1.8.1 (app.cinny.in)]
4. Matrix homeserver: [e.g. matrix.org]
1. OS: [e.g. Binbows 10, MacOS]
2. Browser: [e.g. pale moon 33, waterfox 105]
3. Versi version: [e.g. 1.8.1]
4. Matrix homeserver: [e.g. chat.true-og.net]
render: shell
validations:
required: true
+2 -2
View File
@@ -1,4 +1,4 @@
contact_links:
- name: 💬 Matrix Chat
url: https://matrix.to/#/#cinny:matrix.org
about: Ask questions and talk to other Cinny users and the maintainers
url: https://chat.true-og.net/
about: Ask questions and talk to other Versi users and the maintainers
-2
View File
@@ -1,5 +1,3 @@
<!-- Please read https://github.com/ajbura/cinny/blob/dev/CONTRIBUTING.md before submitting your pull request -->
### Description
<!-- Please include a summary of the change. Please also include relevant motivation and context. List any dependencies that are required for this change. -->
+1 -1
View File
@@ -1,3 +1,3 @@
# Reporting a Vulnerability
**If you've found a security vulnerability, please report it to cinnyapp@gmail.com**
**If you've found a security vulnerability, please report it to admin@true-og.net**
-97
View File
@@ -1,97 +0,0 @@
name: Production deploy
on:
release:
types: [published]
jobs:
deploy-and-tarball:
name: Netlify deploy and tarball
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3.2.0
- name: Setup node
uses: actions/setup-node@v3.5.1
with:
node-version: 18.12.1
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Build app
run: npm run build
- name: Deploy to Netlify
uses: nwtgck/actions-netlify@5da65c9f74c7961c5501a3ba329b8d0912f39c03
with:
publish-dir: dist
deploy-message: "Prod deploy ${{ github.ref_name }}"
enable-commit-comment: false
github-token: ${{ secrets.GITHUB_TOKEN }}
production-deploy: true
github-deployment-environment: stable
github-deployment-description: 'Stable deployment on each release'
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID_APP }}
timeout-minutes: 1
- name: Get version from tag
id: vars
run: echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT
- name: Create tar.gz
run: tar -czvf cinny-${{ steps.vars.outputs.tag }}.tar.gz dist
- name: Sign tar.gz
run: |
echo '${{ secrets.GNUPG_KEY }}' | gpg --batch --import
# Sadly a few lines in the private key match a few lines in the public key,
# As a result just --export --armor gives us a few lines replaced with ***
# making it useless for importing the signing key. Instead, we dump it as
# non-armored and hex-encode it so that its printable.
echo "PGP Signing key, in raw PGP format in hex. Import with cat ... | xxd -r -p - | gpg --import"
gpg --export | xxd -p
echo '${{ secrets.GNUPG_PASSPHRASE }}' | gpg --batch --yes --pinentry-mode loopback --passphrase-fd 0 --armor --detach-sign cinny-${{ steps.vars.outputs.tag }}.tar.gz
- name: Upload tagged release
uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844
with:
files: |
cinny-${{ steps.vars.outputs.tag }}.tar.gz
cinny-${{ steps.vars.outputs.tag }}.tar.gz.asc
publish-image:
name: Push Docker image to Docker Hub, ghcr
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v3.2.0
- name: Set up QEMU
uses: docker/setup-qemu-action@v2.1.0
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2.2.1
- name: Login to Docker Hub
uses: docker/login-action@v2.1.0
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Login to the Container registry
uses: docker/login-action@v2.1.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v4.1.1
with:
images: |
${{ secrets.DOCKER_USERNAME }}/cinny
ghcr.io/${{ github.repository }}
- name: Build and push Docker image
uses: docker/build-push-action@v3.2.0
with:
context: .
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
-44
View File
@@ -1,44 +0,0 @@
# Contributing to Cinny
First off, thanks for taking the time to contribute! ❤️
All types of contributions are encouraged and valued. Please make sure to read the relevant section before making your contribution. It will make it a lot easier for us maintainers and smooth out the experience for all involved. The community looks forward to your contributions. 🎉
> And if you like the project, but just don't have time to contribute, that's fine. There are other easy ways to support the project and show your appreciation, which we would also be very happy about:
> - Star the project
> - Tweet about it (tag @cinnyapp)
> - Refer this project in your project's readme
> - Mention the project at local meetups and tell your friends/colleagues
> - [Donate to us](https://cinny.in/#sponsor)
## Bug reports
Bug reports and feature suggestions must use descriptive and concise titles and be submitted to [GitHub Issues](https://github.com/ajbura/cinny/issues). Please use the search function to make sure that you are not submitting duplicates, and that a similar report or request has not already been resolved or rejected.
## Pull requests
> ### Legal Notice
> When contributing to this project, you must agree that you have authored 100% of the content, that you have the necessary rights to the content and that the content you contribute may be provided under the project license.
**NOTE: If you want to add new features, please discuss with maintainers before coding or opening a pull request.** This is to ensure that we are on same track and following our roadmap.
**Please use clean, concise titles for your pull requests.** We use commit squashing, so the final commit in the dev branch will carry the title of the pull request. For easier sorting in changelog, start your pull request titles using one of the verbs "Add", "Change", "Remove", or "Fix" (present tense).
Example:
|Not ideal|Better|
|---|----|
|Fixed markAllAsRead in RoomTimeline|Fix read marker when paginating room timeline|
It is not always possible to phrase every change in such a manner, but it is desired.
**The smaller the set of changes in the pull request is, the quicker it can be reviewed and merged.** Splitting tasks into multiple smaller pull requests is often preferable.
Also, we use [ESLint](https://eslint.org/) for clean and stylistically consistent code syntax, so make sure your pull request follow it.
**For any query or design discussion, join our [Matrix room](https://matrix.to/#/#cinny:matrix.org).**
## Helpful links
- [BEM methodology](http://getbem.com/introduction/)
- [Atomic design](https://bradfrost.com/blog/post/atomic-web-design/)
- [Matrix JavaScript SDK documentation](https://matrix-org.github.io/matrix-js-sdk/index.html)
-19
View File
@@ -1,19 +0,0 @@
## Builder
FROM node:18.12.1-alpine3.15 as builder
WORKDIR /src
COPY .npmrc package.json package-lock.json /src/
RUN npm ci
COPY . /src/
ENV NODE_OPTIONS=--max_old_space_size=4096
RUN npm run build
## App
FROM nginx:1.23.3-alpine
COPY --from=builder /src/dist /app
RUN rm -rf /usr/share/nginx/html \
&& ln -s /app /usr/share/nginx/html
+31 -87
View File
@@ -1,90 +1,42 @@
# Cinny
# Versi
<p>
<a href="https://github.com/ajbura/cinny/releases">
<img alt="GitHub release downloads" src="https://img.shields.io/github/downloads/ajbura/cinny/total?logo=github&style=social"></a>
<a href="https://hub.docker.com/r/ajbura/cinny">
<img alt="DockerHub downloads" src="https://img.shields.io/docker/pulls/ajbura/cinny?logo=docker&style=social"></a>
<a href="https://fosstodon.org/@cinnyapp">
<img alt="Follow on Mastodon" src="https://img.shields.io/mastodon/follow/106845779685925461?domain=https%3A%2F%2Ffosstodon.org&logo=mastodon&style=social"></a>
<a href="https://twitter.com/intent/follow?screen_name=cinnyapp">
<img alt="Follow on Twitter" src="https://img.shields.io/twitter/follow/cinnyapp?logo=twitter&style=social"></a>
<a href="https://cinny.in/#sponsor">
<img alt="Sponsor Cinny" src="https://img.shields.io/opencollective/all/cinny?logo=opencollective&style=social"></a>
<a href="https://github.com/NotAlexNoyle/Versi/releases">Download</a> |
<a href="https://mastodon.gamedev.place/@trueog">Mastodon</a> |
<a href="https://store.trueog.net">Donate</a> |
<a href="https://true-og.net">Join TrueOG Network</a>
<br>
<br>
<img alt="Versi Logo" src="https://raw.githubusercontent.com/NotAlexNoyle/Versi/dev/assets/versi-logo.png"></a>
</p>
A Matrix client focusing primarily on simple, elegant and secure interface. The main goal is to have an instant messaging application that is easy on people and has a modern touch.
- [Roadmap](https://github.com/ajbura/cinny/projects/11)
- [Contributing](./CONTRIBUTING.md)
Versi is a liberated MIT-licensed fork of [Cinny](https://github.com/cinnyapp/cinny) 2.2.4 maintained by and for [TrueOG Network](https://true-og.net/).
Versi is named for Calotes versicolor, a predator of the Cinnyris asiaticus. It also means "an account or description from a particular point of view, especially as contrasted with another account.", which calls attention to the permissive vs copyleft licensing conflict between Versi and Cinny.
- [Roadmap](https://true-og.net/todo-list)
- [Contributing](https://true-og.net/TrueOG-Contributor-Guide.pdf)
## Getting started
Web app is available at https://app.cinny.in and gets updated on each new release. The `dev` branch is continuously deployed at https://dev.cinny.in but keep in mind that it could have things broken.
Our web app is available at https://chat.true-og.net and gets updated upon each new release.
You can also download our desktop app from [cinny-desktop repository](https://github.com/cinnyapp/cinny-desktop).
You can also download our desktop app, [Versi-Desktop](https://github.com/NotAlexNoyle/Versi-Desktop).
To host Versi on your own, download tarball of the app from the latest [GitHub release](https://github.com/NotAlexNoyle/Versi/releases/latest).
You can serve the application with a webserver of your choice by simply copying `dist/` directory to the webroot.
To host Cinny on your own, download tarball of the app from [GitHub release](https://github.com/cinnyapp/cinny/releases/latest).
You can serve the application with a webserver of your choice by simply copying `dist/` directory to the webroot.
To set default Homeserver on login and register page, place a customized [`config.json`](config.json) in webroot of your choice.
Alternatively you can just pull the [DockerHub image](https://hub.docker.com/r/ajbura/cinny) by:
```
docker pull ajbura/cinny
```
or [ghcr image](https://github.com/cinnyapp/cinny/pkgs/container/cinny) by:
```
docker pull ghcr.io/cinnyapp/cinny:latest
```
<details>
<summary>PGP Public Key to verify tarball</summary>
```
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQGNBGJw/g0BDAC8qQeLqDMzYzfPyOmRlHVEoguVTo+eo1aVdQH2X7OELdjjBlyj
6d6c1adv/uF2g83NNMoQY7GEeHjRnXE4m8kYSaarb840pxrYUagDc0dAbJOGaCBY
FKTo7U1Kvg0vdiaRuus0pvc1NVdXSxRNQbFXBSwduD+zn66TI3HfcEHNN62FG1cE
K1jWDwLAU0P3kKmj8+CAc3h9ZklPu0k/+t5bf/LJkvdBJAUzGZpehbPL5f3u3BZ0
leZLIrR8uV7PiV5jKFahxlKR5KQHld8qQm+qVhYbUzpuMBGmh419I6UvTzxuRcvU
Frn9ttCEzV55Y+so4X2e4ZnB+5gOnNw+ecifGVdj/+UyWnqvqqDvLrEjjK890nLb
Pil4siecNMEpiwAN6WSmKpWaCwQAHEGDVeZCc/kT0iYfj5FBcsTVqWiO6eaxkUlm
jnulqWqRrlB8CJQQvih/g//uSEBdzIibo+ro+3Jpe120U/XVUH62i9HoRQEm6ADG
4zS5hIq4xyA8fL8AEQEAAbQdQ2lubnlBcHAgPGNpbm55YXBwQGdtYWlsLmNvbT6J
AdQEEwEIAD4WIQSRri2MHidaaZv+vvuUMwx6UK/M8wUCYnD+DQIbAwUJA8JnAAUL
CQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRCUMwx6UK/M88ApC/9HAdbum1lYBC0s
1k7GwP2A7B4sQtBWjy771BzybWlHeaeG+BGJwg4YiuowXZMm5dubFJFoI/CfeY07
B5aK40/bmT6Xcfkp0VA74c1wUpubBUEJN7tH5HG/OGd9BKeq9E/HHtVaJLVT1k3w
Rhv9VuHO6nR30EEp7IDthftotl5S4lio3+W0pKk4TAKV8vjaCNp3y/lAHzoP1BU9
bUSao+7GXVeArKBjuqxN+t1uuiaxPH4L0oe2pMVjTig04zGJM5fTVoly859MEcC/
R7Taq9RWGfXFmgCXy8Dviz3eOD90vqpCzhX4+ypK0cp2X0UwhMH4dpKUzExmdbhl
eBO5GcHB4VxvloRBNf9/Lr7YOTgWejMUw+MlhZE2RE8unfW1LnM/cjL4dhXzO/XB
FUHHNq8d6d4e02rfWqw7mZo2/NVJgFRcvzw2rgx7w7CKtCNwF4lNjUetB2waZzDb
fAE0kwhK4Iuwvy12JOBzL0Yy9MxANtwUryr/LQz9AmdT4Rwnp0S5AY0EYnD+DQEM
ANOu/d6ZMF8bW+Df9RDCUQKytbaZfa+ZbIHBus7whCD/SQMOhPKntv3HX7SmMCs+
5i27kJMu4YN623JCS7hdCoXVO1R5kXCEcneW/rPBMDutaM472YvIWMIqK9Wwl5+0
Piu2N+uTkKhe9uS2u7eN+Khef3d7xfjGRxoppM+xI9dZO+jhYiy8LuC0oBohTjJq
QPqfGDpowBwRkkOsGz/XVcesJ1Pzg4bKivTS9kZjZSyT9RRSY8As0sVUN57AwYul
s1+eh00n/tVpi2Jj9pCm7S0csSXvXj8v2OTdK1jt4YjpzR0/rwh4+/xlOjDjZEqH
vMPhpzpbgnwkxZ3X8BFne9dJ3maC5zQ3LAeCP5m1W0hXzagYhfyjo74slJgD1O8c
LDf2Oxc5MyM8Y/UK497zfqSPfgT3NhQmhHzk83DjXw3I6Z3A3U+Jp61w0eBRI1nx
H1UIG+gldcAKUTcfwL0lghoT3nmi9JAbvek0Smhz00Bbo8/dx8vwQRxDUxlt7Exx
NwARAQABiQG8BBgBCAAmFiEEka4tjB4nWmmb/r77lDMMelCvzPMFAmJw/g0CGwwF
CQPCZwAACgkQlDMMelCvzPPT7Qv8CjXUEhphZFLwpBfaNOzRNfIXJST9aDit8zHW
IMmfSpORVfpU71IyIB3o/DtTUPwCeb8nvNJs7aj1QT1ZUSsqFa3yY2S16V/g8+WN
sHca6oDSc1J+A0eEpEL1HbG1b5OPBC0AeGvvMOoqrbqThBZVKg1Jc/0SD3cvKElv
aHeCZCNNmfcZ2Ib4HYhhc8//ZtC9TeI+5J/YesctY1M12EoWMxMrc27Y3P5Pa0BI
Uc3qxWggPq1vOFYsEshL0w99HyJvREJmQA7Fa0crV+rICxyrBxJeNnEvjH/0KCBU
LCkEonLY1QwrxyeeV3VpxGE3zHHE3azOdAjTIoAdzX5f/qhbgYlM68GL2f8xdDkp
O0igSGHWhO4F8BfmE7IOTx1Bi7daczp8nCFxh73cKpKB0RUsd9xxrqYpovjmEAlo
w7aHpdzt64NQcsrbK10OSVDF3gFa9Vz20/NQvdUrp8jGmAb/8+nYqI94Jsc28H36
UeGsouhyuITLwEhScounZDqop+Dx
=Zg+6
-----END PGP PUBLIC KEY BLOCK-----
TBA on first release.
```
</details>
## Local development
> We recommend using a version manager as versions change very quickly. You will likely need to switch
between multiple Node.js versions based on the needs of different projects you're working on. [NVM on windows](https://github.com/coreybutler/nvm-windows#installation--upgrades) on Windows and [nvm](https://github.com/nvm-sh/nvm) on Linux/macOS are pretty good choices. Also recommended nodejs version Hydrogen LTS (v18).
> We recommend using [nvm](https://github.com/nvm-sh/nvm) to create a dedicated node environment for each project you work on.
Execute the following commands to start a development server:
```sh
@@ -92,30 +44,22 @@ npm ci # Installs all dependencies
npm start # Serve a development version
```
To build the app:
To build Versi:
```sh
npm run build # Compiles the app into the dist/ directory
```
### Running with Docker
This repository includes a Dockerfile, which builds the application from source and serves it with Nginx on port 80. To
use this locally, you can build the container like so:
```
docker build -t cinny:latest .
```
You can then run the container you've built with a command similar to this:
```
docker run -p 8080:80 cinny:latest
```
This will forward your `localhost` port 8080 to the container's port 80. You can visit the app in your browser by navigating to `http://localhost:8080`.
## Changes
- Changed branding from Cinny to Versi.
- Updated dependencies, patched security vulnerabilities.
- Close settings and search with escape key (credit to MyBeansAreBaked).
## License
Copyright (c) 2021-present Ajay Bura (ajbura)
Code licensed under the MIT License: <http://opensource.org/licenses/MIT>
Code licensed under the [MIT License](https://raw.githubusercontent.com/NotAlexNoyle/Versi/dev/LICENSE.md).
Graphics licensed under CC-BY 4.0: <https://creativecommons.org/licenses/by/4.0/>
Original graphics from [Cinny](https://github.com/cinnyapp/cinny) licensed under [CC-BY 4.0](https://creativecommons.org/licenses/by/4.0/).
Original graphics from [TrueOG Network](https://github.com/true-og/true-og) are released into the public domain via [The Unlicense](https://github.com/true-og/true-og/blob/main/LICENSE).
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.
+2 -2
View File
@@ -1,8 +1,8 @@
import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = {
appId: 'today.icarus.cinny',
appName: 'Cinny',
appId: 'net.trueog.versi',
appName: 'Versi',
webDir: 'dist',
bundledWebRuntime: false,
};
+2 -5
View File
@@ -1,12 +1,9 @@
{
"defaultHomeserver": 3,
"homeserverList": [
"converser.eu",
"envs.net",
"halogen.city",
"matrix.icarus.today",
"matrix.org",
"chat.true-og.net",
"mozilla.org"
],
"allowCustomHomeservers": true
}
}
@@ -1,7 +1,7 @@
server {
listen 80;
listen [::]:80;
server_name cinny.domain.tld;
server_name versi.domain.tld;
location / {
return 301 https://$host$request_uri;
@@ -15,10 +15,10 @@ server {
server {
listen 443 ssl http2;
listen [::]:443 ssl;
server_name cinny.domain.tld;
server_name versi.domain.tld;
location / {
root /opt/cinny/dist/;
root /opt/versi/dist/;
index index.html;
}
location ~* ^\/(login|register) {
+11 -11
View File
@@ -4,24 +4,24 @@
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Cinny</title>
<meta name="name" content="Cinny" />
<meta name="author" content="Ajay Bura" />
<title>Versi</title>
<meta name="name" content="Versi" />
<meta name="author" content="TrueOG Network" />
<meta
name="description"
content="A Matrix client where you can enjoy the conversation using simple, elegant and secure interface protected by e2ee with the power of open source."
content="A liberated MIT-licensed fork of Cinny 2.2.4 maintained by and for TrueOG Network. "
/>
<meta
name="keywords"
content="cinny, cinnyapp, cinnychat, matrix, matrix client, matrix.org, element"
content="versi, versiapp, versichat, matrix, matrix client, matrix.org"
/>
<meta property="og:title" content="Cinny" />
<meta property="og:url" content="https://cinny.in" />
<meta property="og:image" content="https://cinny.in/assets/favicon-48x48.png" />
<meta property="og:title" content="Versi" />
<meta property="og:url" content="https://chat.true-og.net" />
<meta property="og:image" content="https://raw.githubusercontent.com/NotAlexNoyle/Versi/dev/assets/versi-logo.png" />
<meta
property="og:description"
content="A Matrix client where you can enjoy the conversation using simple, elegant and secure interface protected by e2ee with the power of open source."
content="A liberated MIT-licensed fork of Cinny 2.2.4 maintained by and for TrueOG Network. "
/>
<meta name="theme-color" content="#000000" />
@@ -29,8 +29,8 @@
<link rel="manifest" href="./manifest.json" />
<meta name="mobile-web-app-capable" content="yes" />
<meta name="application-name" content="Cinny" />
<meta name="apple-mobile-web-app-title" content="Cinny" />
<meta name="application-name" content="Versi" />
<meta name="apple-mobile-web-app-title" content="Versi" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
+2373 -1791
View File
File diff suppressed because it is too large. Load diff
+11 -11
View File
@@ -1,7 +1,7 @@
{
"name": "cinny",
"version": "2.2.6",
"description": "Yet another matrix client",
"name": "versi",
"version": 0.1,
"description": "A liberated MIT-licensed fork of Cinny 2.2.4 maintained by and for TrueOG Network.",
"main": "index.js",
"engines": {
"node": ">=16.0.0"
@@ -16,7 +16,7 @@
"typecheck": "tsc --noEmit"
},
"keywords": [],
"author": "Ajay Bura",
"author": "TrueOG Network",
"license": "MIT",
"dependencies": {
"@capacitor/android": "4.7.1",
@@ -34,15 +34,15 @@
"file-saver": "2.0.5",
"flux": "4.0.3",
"formik": "2.2.9",
"google-translate-api-browser": "3.0.0",
"google-translate-api-browser": "5.0.0",
"html-react-parser": "3.0.4",
"i18next": "22.4.9",
"i18next-browser-languagedetector": "7.0.1",
"i18next-http-backend": "2.1.1",
"katex": "0.16.4",
"katex": "0.16.10",
"linkify-html": "4.0.2",
"linkifyjs": "4.0.2",
"matrix-js-sdk": "24.0.0",
"matrix-js-sdk": "24.1.0",
"prop-types": "15.8.1",
"react": "17.0.2",
"react-autosize-textarea": "7.1.0",
@@ -53,13 +53,13 @@
"react-google-recaptcha": "2.1.0",
"react-i18next": "12.1.5",
"react-modal": "3.16.1",
"sanitize-html": "2.8.0",
"sanitize-html": "2.13.0",
"tippy.js": "6.3.7",
"twemoji": "14.0.2"
},
"devDependencies": {
"@capacitor/assets": "2.0.4",
"@capacitor/cli": "4.7.1",
"@capacitor/assets": "3.0.5",
"@capacitor/cli": "4.8.2",
"@esbuild-plugins/node-globals-polyfill": "0.2.3",
"@rollup/plugin-inject": "5.0.3",
"@rollup/plugin-wasm": "6.1.1",
@@ -81,7 +81,7 @@
"prettier": "2.8.1",
"sass": "1.56.2",
"typescript": "4.9.4",
"vite": "4.0.1",
"vite": "4.5.3",
"vite-plugin-static-copy": "0.13.0"
}
}
+4 -4
View File
@@ -5,7 +5,7 @@
"open": "Open",
"leave": "Leave",
"options": "Options",
"cinny": "Cinny",
versi: Versi,
"slogan": "Yet another matrix client",
"source_code": "Source code",
"sponsor": "Support",
@@ -44,8 +44,8 @@
},
"Organisms": {
"Welcome": {
"heading": "Welcome to Cinny!",
"subheading": "Yet another Matrix client"
"heading": "Welcome to Versi!",
"subheading": A libre matrix client by TrueOG Network
},
"ViewSource": {
"title": "View Source",
@@ -886,4 +886,4 @@
}
}
}
}
}
+5 -5
View File
@@ -5,8 +5,8 @@
"open": "Open",
"leave": "Leave",
"options": "Options",
"cinny": "Cinny",
"slogan": "Yet another matrix client",
"versi": Versi,
"slogan": "A Libre matrix client by TrueOG Network",
"source_code": "Source code",
"sponsor": "Support",
"retry": "Retry",
@@ -44,8 +44,8 @@
},
"Organisms": {
"Welcome": {
"heading": "Welcome to Cinny!",
"subheading": "Yet another Matrix client"
"heading": "Welcome to Versi!",
"subheading": A Libre matrix client by TrueOG Network
},
"ViewSource": {
"title": "View Source",
@@ -886,4 +886,4 @@
}
}
}
}
}
+3 -3
View File
@@ -1,7 +1,7 @@
{
"name": "Cinny",
"short_name": "Cinny",
"description": "Yet another matrix client",
"name": "Versi",
"short_name": "Versi",
"description": "A Libre matrix client by TrueOG Network",
"dir": "auto",
"lang": "en-US",
"display": "standalone",
-13
View File
@@ -1,13 +0,0 @@
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2707_1961)">
<path d="M10.5867 17.3522C10.0727 17.4492 9.54226 17.5 9 17.5C4.30558 17.5 0.5 13.6944 0.5 9C0.5 4.30558 4.30558 0.5 9 0.5C13.6944 0.5 17.5 4.30558 17.5 9C17.5 9.54226 17.4492 10.0727 17.3522 10.5867C16.6511 10.2123 15.8503 10 15 10C12.2386 10 10 12.2386 10 15C10 15.8503 10.2123 16.6511 10.5867 17.3522Z" fill="white"/>
<path d="M10 6.39999C10 6.67614 9.77614 6.89999 9.5 6.89999C9.22386 6.89999 9 6.67614 9 6.39999C9 6.12385 9.22386 5.89999 9.5 5.89999C9.77614 5.89999 10 6.12385 10 6.39999Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 0C4 0 0 4 0 9C0 14 4 18 9 18C9.63967 18 10.263 17.9345 10.8636 17.8099C10.3186 17.0091 10 16.0417 10 15C10 12.2386 12.2386 10 15 10C16.0417 10 17.0091 10.3186 17.8099 10.8636C17.9345 10.263 18 9.63967 18 9C18 4 14 0 9 0ZM1.2 10.8L4.7 8.5V8.2C4.7 6.4 6 5 7.8 4.8H8.2C9.4 4.8 10.5 5.4 11.1 6.4C11.4 6.3 11.7 6.3 12 6.3C12.4 6.3 12.8 6.3 13.2 6.4C13.9 6.6 14.6 6.9 15.2 7.3C14.6 7.1 14 7 13.3 7C12.1 7 11.1 7.4 10.4 8.4C9.7 9.3 9.3 10.4 9.3 11.6C9.3 13.1 8.9 14.5 8 15.8C7.93744 15.8834 7.87923 15.9625 7.82356 16.0381C7.6123 16.325 7.43739 16.5626 7.2 16.8C4.2 16.1 1.9 13.8 1.2 10.8Z" fill="black"/>
<path d="M18 15C18 16.6569 16.6569 18 15 18C13.3431 18 12 16.6569 12 15C12 13.3431 13.3431 12 15 12C16.6569 12 18 13.3431 18 15Z" fill="#45B83B"/>
</g>
<defs>
<clipPath id="clip0_2707_1961">
<rect width="18" height="18" fill="white"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

-13
View File
@@ -1,13 +0,0 @@
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2707_2015)">
<path d="M10.5867 17.3522C10.0727 17.4492 9.54226 17.5 9 17.5C4.30558 17.5 0.5 13.6944 0.5 9C0.5 4.30558 4.30558 0.5 9 0.5C13.6944 0.5 17.5 4.30558 17.5 9C17.5 9.54226 17.4492 10.0727 17.3522 10.5867C16.6511 10.2123 15.8503 10 15 10C12.2386 10 10 12.2386 10 15C10 15.8503 10.2123 16.6511 10.5867 17.3522Z" fill="white"/>
<path d="M10 6.39999C10 6.67614 9.77614 6.89999 9.5 6.89999C9.22386 6.89999 9 6.67614 9 6.39999C9 6.12385 9.22386 5.89999 9.5 5.89999C9.77614 5.89999 10 6.12385 10 6.39999Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 0C4 0 0 4 0 9C0 14 4 18 9 18C9.63967 18 10.263 17.9345 10.8636 17.8099C10.3186 17.0091 10 16.0417 10 15C10 12.2386 12.2386 10 15 10C16.0417 10 17.0091 10.3186 17.8099 10.8636C17.9345 10.263 18 9.63967 18 9C18 4 14 0 9 0ZM1.2 10.8L4.7 8.5V8.2C4.7 6.4 6 5 7.8 4.8H8.2C9.4 4.8 10.5 5.4 11.1 6.4C11.4 6.3 11.7 6.3 12 6.3C12.4 6.3 12.8 6.3 13.2 6.4C13.9 6.6 14.6 6.9 15.2 7.3C14.6 7.1 14 7 13.3 7C12.1 7 11.1 7.4 10.4 8.4C9.7 9.3 9.3 10.4 9.3 11.6C9.3 13.1 8.9 14.5 8 15.8C7.93744 15.8834 7.87923 15.9625 7.82356 16.0381C7.6123 16.325 7.43739 16.5626 7.2 16.8C4.2 16.1 1.9 13.8 1.2 10.8Z" fill="black"/>
<path d="M18 15C18 16.6569 16.6569 18 15 18C13.3431 18 12 16.6569 12 15C12 13.3431 13.3431 12 15 12C16.6569 12 18 13.3431 18 15Z" fill="#989898"/>
</g>
<defs>
<clipPath id="clip0_2707_2015">
<rect width="18" height="18" fill="white"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

-19
View File
@@ -1,19 +0,0 @@
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In -->
<svg version="1.1"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
x="0px" y="0px" width="18px" height="18px" viewBox="0 0 18 18" enable-background="new 0 0 18 18" xml:space="preserve">
<defs>
</defs>
<g>
<g>
<circle fill="#FFFFFF" cx="9" cy="9" r="8.5"/>
</g>
<g>
<path d="M9,0C4,0,0,4,0,9c0,5,4,9,9,9c5,0,9-4,9-9C18,4,14,0,9,0z M1.2,10.8l3.5-2.3c0-0.1,0-0.2,0-0.3c0-1.8,1.3-3.2,3.1-3.4
c0.1,0,0.2,0,0.4,0c1.2,0,2.3,0.6,2.9,1.6c0.3-0.1,0.6-0.1,0.9-0.1c0.4,0,0.8,0,1.2,0.1c0.7,0.2,1.4,0.5,2,0.9
C14.6,7.1,14,7,13.3,7c-1.2,0-2.2,0.4-2.9,1.4c-0.7,0.9-1.1,2-1.1,3.2c0,1.5-0.4,2.9-1.3,4.2c-0.3,0.4-0.5,0.7-0.8,1
C4.2,16.1,1.9,13.8,1.2,10.8z"/>
<circle cx="9.5" cy="6.4" r="0.5"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 871 B

+66
View File
@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
version="1.1"
id="svg1"
width="560"
height="646.66669"
viewBox="0 0 560 646.66669"
sodipodi:docname="versi-logo-online.png"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1" />
<sodipodi:namedview
id="namedview1"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
inkscape:zoom="1.370103"
inkscape:cx="279.90595"
inkscape:cy="323.33334"
inkscape:window-width="1920"
inkscape:window-height="1090"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="g1" />
<g
inkscape:groupmode="layer"
inkscape:label="Image"
id="g1">
<image
width="560"
height="646.66669"
preserveAspectRatio="none"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAaQAAAHlCAYAAAC6SIj8AAAA0GVYSWZJSSoACAAAAAoAAAEEAAEA&#10;AACkAQAAAQEEAAEAAADlAQAAAgEDAAMAAACGAAAAEgEDAAEAAAABAAAAGgEFAAEAAACMAAAAGwEF&#10;AAEAAACUAAAAKAEDAAEAAAACAAAAMQECAA0AAACcAAAAMgECABQAAACqAAAAaYcEAAEAAAC+AAAA&#10;AAAAAAgACAAIAEgAAAABAAAASAAAAAEAAABHSU1QIDIuMTAuMzYAADIwMjQ6MDU6MDQgMTQ6MzE6&#10;NDIAAQABoAMAAQAAAAEAAAAAAAAAZfBtEQAAAYRpQ0NQSUNDIHByb2ZpbGUAAHicfZE9SMNAHMVf&#10;05aKVB3sINIhQ3Wyi4o41ioUoUKoFVp1MLn0C5q0JCkujoJrwcGPxaqDi7OuDq6CIPgB4uzgpOgi&#10;Jf4vKbSI8eC4H+/uPe7eAUKryjQzkAA03TIyqaSYy6+KoVcEEcAgogjKzKzPSVIanuPrHj6+3sV5&#10;lve5P8eAWjAZ4BOJE6xuWMQbxDObVp3zPnGElWWV+Jx4wqALEj9yXXH5jXPJYYFnRoxsZp44QiyW&#10;eljpYVY2NOJp4piq6ZQv5FxWOW9x1qoN1rknf2G4oK8sc51mFCksYgkSRChooIIqLMRp1UkxkaH9&#10;pId/1PFL5FLIVQEjxwJq0CA7fvA/+N2tWZyadJPCSSD4YtsfY0BoF2g3bfv72LbbJ4D/GbjSu/5a&#10;C5j9JL3Z1WJHwNA2cHHd1ZQ94HIHGHmqy4bsSH6aQrEIvJ/RN+WB4Vugf83trbOP0wcgS12lb4CD&#10;Q2C8RNnrHu/u6+3t3zOd/n4AKbNyiX17rBAAAA14aVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8&#10;P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4&#10;bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA0LjQuMC1F&#10;eGl2MiI+CiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjIt&#10;cmRmLXN5bnRheC1ucyMiPgogIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICB4bWxu&#10;czp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0&#10;PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4&#10;bWxuczpHSU1QPSJodHRwOi8vd3d3LmdpbXAub3JnL3htcC8iCiAgICB4bWxuczpkYz0iaHR0cDov&#10;L3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRv&#10;YmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAv&#10;MS4wLyIKICAgeG1wTU06RG9jdW1lbnRJRD0iZ2ltcDpkb2NpZDpnaW1wOjE3YmUwMzI2LWIyOWYt&#10;NDI5Yi04NTcwLWI1MTMzYjExZDQ0YSIKICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpjMjRj&#10;NWQ4Yy0zNTcwLTQ5OTctYjE0Zi0zYzAzYjVjZDdjMzkiCiAgIHhtcE1NOk9yaWdpbmFsRG9jdW1l&#10;bnRJRD0ieG1wLmRpZDozZjcyZDNjNi0wZjMwLTQwYjgtODcwOC1hYzY3MGRlMmUxMjgiCiAgIEdJ&#10;TVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09IkxpbnV4IgogICBHSU1QOlRpbWVTdGFtcD0i&#10;MTcxNDgzMzEwMjQ4MDk0NiIKICAgR0lNUDpWZXJzaW9uPSIyLjEwLjM2IgogICBkYzpGb3JtYXQ9&#10;ImltYWdlL3BuZyIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgeG1wOkNyZWF0b3JUb29sPSJH&#10;SU1QIDIuMTAiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjQ6MDU6MDRUMTQ6MzE6NDIrMDA6MDAi&#10;CiAgIHhtcDpNb2RpZnlEYXRlPSIyMDI0OjA1OjA0VDE0OjMxOjQyKzAwOjAwIj4KICAgPHhtcE1N&#10;Okhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0i&#10;c2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9Inht&#10;cC5paWQ6Y2E0MDUwNGQtYzljMy00YjM2LWI4NTYtMGJiNDBiNTllYjBiIgogICAgICBzdEV2dDpz&#10;b2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKExpbnV4KSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyNC0w&#10;NS0wNFQxNDozMTo0MiswMDowMCIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+&#10;CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgILine truncated
id="image1" />
<ellipse
style="fill:#000000"
id="path1"
cx="442.30249"
cy="465.65845"
rx="112.40031"
ry="104.37171" />
<ellipse
style="fill:#000000"
id="path2"
cx="454.71033"
cy="534.63135"
rx="2.9194884"
ry="28.100077" />
<path
style="fill:#00a300;stroke-width:0.729872;fill-opacity:1"
d="m 434.2739,569.24658 c -54.95257,-3.48219 -100.03982,-45.22417 -103.50508,-95.82547 -2.89219,-42.23312 19.69182,-80.06487 59.53143,-99.72443 32.34786,-15.96262 72.30954,-15.82157 104.78517,0.36986 33.88524,16.89422 56.36753,49.02828 58.76166,83.98838 2.88058,42.06367 -19.79258,79.97509 -59.54233,99.55973 -12.72429,6.26923 -28.88524,10.67911 -41.76453,11.39637 -3.42289,0.19063 -7.20875,0.43088 -8.41304,0.53388 -1.20429,0.10302 -5.63826,-0.0312 -9.85328,-0.29832 z"
id="path3" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 202 KiB

+66
View File
@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
version="1.1"
id="svg1"
width="560"
height="646.66669"
viewBox="0 0 560 646.66669"
sodipodi:docname="versi-logo-online.png"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1" />
<sodipodi:namedview
id="namedview1"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
inkscape:zoom="1.370103"
inkscape:cx="279.90595"
inkscape:cy="323.33334"
inkscape:window-width="1920"
inkscape:window-height="1090"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="g1" />
<g
inkscape:groupmode="layer"
inkscape:label="Image"
id="g1">
<image
width="560"
height="646.66669"
preserveAspectRatio="none"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAaQAAAHlCAYAAAC6SIj8AAAA0GVYSWZJSSoACAAAAAoAAAEEAAEA&#10;AACkAQAAAQEEAAEAAADlAQAAAgEDAAMAAACGAAAAEgEDAAEAAAABAAAAGgEFAAEAAACMAAAAGwEF&#10;AAEAAACUAAAAKAEDAAEAAAACAAAAMQECAA0AAACcAAAAMgECABQAAACqAAAAaYcEAAEAAAC+AAAA&#10;AAAAAAgACAAIAEgAAAABAAAASAAAAAEAAABHSU1QIDIuMTAuMzYAADIwMjQ6MDU6MDQgMTQ6MzE6&#10;NDIAAQABoAMAAQAAAAEAAAAAAAAAZfBtEQAAAYRpQ0NQSUNDIHByb2ZpbGUAAHicfZE9SMNAHMVf&#10;05aKVB3sINIhQ3Wyi4o41ioUoUKoFVp1MLn0C5q0JCkujoJrwcGPxaqDi7OuDq6CIPgB4uzgpOgi&#10;Jf4vKbSI8eC4H+/uPe7eAUKryjQzkAA03TIyqaSYy6+KoVcEEcAgogjKzKzPSVIanuPrHj6+3sV5&#10;lve5P8eAWjAZ4BOJE6xuWMQbxDObVp3zPnGElWWV+Jx4wqALEj9yXXH5jXPJYYFnRoxsZp44QiyW&#10;eljpYVY2NOJp4piq6ZQv5FxWOW9x1qoN1rknf2G4oK8sc51mFCksYgkSRChooIIqLMRp1UkxkaH9&#10;pId/1PFL5FLIVQEjxwJq0CA7fvA/+N2tWZyadJPCSSD4YtsfY0BoF2g3bfv72LbbJ4D/GbjSu/5a&#10;C5j9JL3Z1WJHwNA2cHHd1ZQ94HIHGHmqy4bsSH6aQrEIvJ/RN+WB4Vugf83trbOP0wcgS12lb4CD&#10;Q2C8RNnrHu/u6+3t3zOd/n4AKbNyiX17rBAAAA14aVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8&#10;P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4&#10;bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA0LjQuMC1F&#10;eGl2MiI+CiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjIt&#10;cmRmLXN5bnRheC1ucyMiPgogIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICB4bWxu&#10;czp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0&#10;PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4&#10;bWxuczpHSU1QPSJodHRwOi8vd3d3LmdpbXAub3JnL3htcC8iCiAgICB4bWxuczpkYz0iaHR0cDov&#10;L3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRv&#10;YmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAv&#10;MS4wLyIKICAgeG1wTU06RG9jdW1lbnRJRD0iZ2ltcDpkb2NpZDpnaW1wOjE3YmUwMzI2LWIyOWYt&#10;NDI5Yi04NTcwLWI1MTMzYjExZDQ0YSIKICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpjMjRj&#10;NWQ4Yy0zNTcwLTQ5OTctYjE0Zi0zYzAzYjVjZDdjMzkiCiAgIHhtcE1NOk9yaWdpbmFsRG9jdW1l&#10;bnRJRD0ieG1wLmRpZDozZjcyZDNjNi0wZjMwLTQwYjgtODcwOC1hYzY3MGRlMmUxMjgiCiAgIEdJ&#10;TVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09IkxpbnV4IgogICBHSU1QOlRpbWVTdGFtcD0i&#10;MTcxNDgzMzEwMjQ4MDk0NiIKICAgR0lNUDpWZXJzaW9uPSIyLjEwLjM2IgogICBkYzpGb3JtYXQ9&#10;ImltYWdlL3BuZyIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgeG1wOkNyZWF0b3JUb29sPSJH&#10;SU1QIDIuMTAiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjQ6MDU6MDRUMTQ6MzE6NDIrMDA6MDAi&#10;CiAgIHhtcDpNb2RpZnlEYXRlPSIyMDI0OjA1OjA0VDE0OjMxOjQyKzAwOjAwIj4KICAgPHhtcE1N&#10;Okhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0i&#10;c2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9Inht&#10;cC5paWQ6Y2E0MDUwNGQtYzljMy00YjM2LWI4NTYtMGJiNDBiNTllYjBiIgogICAgICBzdEV2dDpz&#10;b2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKExpbnV4KSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyNC0w&#10;NS0wNFQxNDozMTo0MiswMDowMCIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+&#10;CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgILine truncated
id="image1" />
<ellipse
style="fill:#000000"
id="path1"
cx="442.30249"
cy="465.65845"
rx="112.40031"
ry="104.37171" />
<ellipse
style="fill:#000000"
id="path2"
cx="454.71033"
cy="534.63135"
rx="2.9194884"
ry="28.100077" />
<path
style="fill:#00a300;stroke-width:0.729872;fill-opacity:1"
d="m 434.2739,569.24658 c -54.95257,-3.48219 -100.03982,-45.22417 -103.50508,-95.82547 -2.89219,-42.23312 19.69182,-80.06487 59.53143,-99.72443 32.34786,-15.96262 72.30954,-15.82157 104.78517,0.36986 33.88524,16.89422 56.36753,49.02828 58.76166,83.98838 2.88058,42.06367 -19.79258,79.97509 -59.54233,99.55973 -12.72429,6.26923 -28.88524,10.67911 -41.76453,11.39637 -3.42289,0.19063 -7.20875,0.43088 -8.41304,0.53388 -1.20429,0.10302 -5.63826,-0.0312 -9.85328,-0.29832 z"
id="path3" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 202 KiB

+52
View File
@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
version="1.1"
id="svg1"
width="560"
height="646.66669"
viewBox="0 0 560 646.66669"
sodipodi:docname="versi-logo.svg"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1" />
<sodipodi:namedview
id="namedview1"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
inkscape:zoom="1.370103"
inkscape:cx="279.90595"
inkscape:cy="323.33334"
inkscape:window-width="1920"
inkscape:window-height="1090"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="g1" />
<g
inkscape:groupmode="layer"
inkscape:label="Image"
id="g1">
<image
width="560"
height="646.66669"
preserveAspectRatio="none"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAaQAAAHlCAYAAAC6SIj8AAAA0GVYSWZJSSoACAAAAAoAAAEEAAEA&#10;AACkAQAAAQEEAAEAAADlAQAAAgEDAAMAAACGAAAAEgEDAAEAAAABAAAAGgEFAAEAAACMAAAAGwEF&#10;AAEAAACUAAAAKAEDAAEAAAACAAAAMQECAA0AAACcAAAAMgECABQAAACqAAAAaYcEAAEAAAC+AAAA&#10;AAAAAAgACAAIAEgAAAABAAAASAAAAAEAAABHSU1QIDIuMTAuMzYAADIwMjQ6MDU6MDQgMTQ6MzE6&#10;NDIAAQABoAMAAQAAAAEAAAAAAAAAZfBtEQAAAYRpQ0NQSUNDIHByb2ZpbGUAAHicfZE9SMNAHMVf&#10;05aKVB3sINIhQ3Wyi4o41ioUoUKoFVp1MLn0C5q0JCkujoJrwcGPxaqDi7OuDq6CIPgB4uzgpOgi&#10;Jf4vKbSI8eC4H+/uPe7eAUKryjQzkAA03TIyqaSYy6+KoVcEEcAgogjKzKzPSVIanuPrHj6+3sV5&#10;lve5P8eAWjAZ4BOJE6xuWMQbxDObVp3zPnGElWWV+Jx4wqALEj9yXXH5jXPJYYFnRoxsZp44QiyW&#10;eljpYVY2NOJp4piq6ZQv5FxWOW9x1qoN1rknf2G4oK8sc51mFCksYgkSRChooIIqLMRp1UkxkaH9&#10;pId/1PFL5FLIVQEjxwJq0CA7fvA/+N2tWZyadJPCSSD4YtsfY0BoF2g3bfv72LbbJ4D/GbjSu/5a&#10;C5j9JL3Z1WJHwNA2cHHd1ZQ94HIHGHmqy4bsSH6aQrEIvJ/RN+WB4Vugf83trbOP0wcgS12lb4CD&#10;Q2C8RNnrHu/u6+3t3zOd/n4AKbNyiX17rBAAAA14aVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8&#10;P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4&#10;bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA0LjQuMC1F&#10;eGl2MiI+CiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjIt&#10;cmRmLXN5bnRheC1ucyMiPgogIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICB4bWxu&#10;czp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0&#10;PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4&#10;bWxuczpHSU1QPSJodHRwOi8vd3d3LmdpbXAub3JnL3htcC8iCiAgICB4bWxuczpkYz0iaHR0cDov&#10;L3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRv&#10;YmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAv&#10;MS4wLyIKICAgeG1wTU06RG9jdW1lbnRJRD0iZ2ltcDpkb2NpZDpnaW1wOjE3YmUwMzI2LWIyOWYt&#10;NDI5Yi04NTcwLWI1MTMzYjExZDQ0YSIKICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpjMjRj&#10;NWQ4Yy0zNTcwLTQ5OTctYjE0Zi0zYzAzYjVjZDdjMzkiCiAgIHhtcE1NOk9yaWdpbmFsRG9jdW1l&#10;bnRJRD0ieG1wLmRpZDozZjcyZDNjNi0wZjMwLTQwYjgtODcwOC1hYzY3MGRlMmUxMjgiCiAgIEdJ&#10;TVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09IkxpbnV4IgogICBHSU1QOlRpbWVTdGFtcD0i&#10;MTcxNDgzMzEwMjQ4MDk0NiIKICAgR0lNUDpWZXJzaW9uPSIyLjEwLjM2IgogICBkYzpGb3JtYXQ9&#10;ImltYWdlL3BuZyIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgeG1wOkNyZWF0b3JUb29sPSJH&#10;SU1QIDIuMTAiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjQ6MDU6MDRUMTQ6MzE6NDIrMDA6MDAi&#10;CiAgIHhtcDpNb2RpZnlEYXRlPSIyMDI0OjA1OjA0VDE0OjMxOjQyKzAwOjAwIj4KICAgPHhtcE1N&#10;Okhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0i&#10;c2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9Inht&#10;cC5paWQ6Y2E0MDUwNGQtYzljMy00YjM2LWI4NTYtMGJiNDBiNTllYjBiIgogICAgICBzdEV2dDpz&#10;b2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKExpbnV4KSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyNC0w&#10;NS0wNFQxNDozMTo0MiswMDowMCIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+&#10;CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg&#10;ICAgICAgICAgICAgILine truncated
id="image1" />
<path
style="stroke:#7d394a;fill:none"
d="M 150.66667,49.333335 C 149.84511,33.530641 134.10995,28.10905 125.33333,26.489706 c -6.8526,-1.264323 -8.73425,-4.663249 -12,-7.823039 8.07987,-8.39091 25.21668,-5.155517 38.66667,2.299398 9.23164,5.116822 10.99872,7.847819 18.66667,12.49585 5.7139,3.463542 25.20355,6.144247 33.33333,10.318929 4.71983,2.423666 9.01042,7.375815 13.33333,10.082358 4.87104,3.049723 7.34558,2.074056 9.33334,2.135783 4.43394,0.137695 9.52384,-1.782878 21.33333,7.692383 9.77309,7.84139 18.93573,13.945394 28,21.10905 19.50376,15.414142 43.61882,30.288292 61.33333,44.966022 9.00533,7.46155 20.7944,21.10299 30.71916,29.61422 5.36153,4.59794 10.0518,7.30705 14.61418,11.39095 8.8752,7.94438 15.89241,15.73889 23.11112,26.56173 7.68966,11.52893 14.94629,23.46757 21.2181,36 3.61397,7.22148 7.61808,12.51115 11.23971,20 8.44006,17.45239 12.4628,34.24911 15.42696,52 3.76977,22.57536 4.30265,44.97136 2.45166,68.00001 -1.30738,16.26538 -4.13957,32.64013 -12.11422,46.66666 M 61.333333,25.333334 c 28.123149,0 35.975108,-5.967936 51.999997,-6.666667 M 116,21.333334 c -4.29793,5.31014 -4.75938,6.922282 -7.65432,12 -2.20742,3.871827 -5.08146,9.133179 -4.6214,14.666668 0.80439,9.674927 6.39278,16.617228 16.27572,21.333334 M 37.333333,42.666668 32,46.666668 c -3.898649,-8.299601 -0.479693,-13.567627 8,-12 l -4,5.333333 5.333333,-5.333333 m 79.999997,14.666667 c 2.84037,-5.710978 3.786,-16.055461 13.02984,-11.91976 3.31931,1.485067 5.80316,10.544475 4.82099,14.585409 -1.25339,5.15682 -5.01705,8.486125 -8.46605,8.486614 -5.81374,8.13e-4 -6.78468,-5.569092 -8.05144,-9.81893 3.11394,0.872071 4.83898,1.065267 12,8.000001 M 41.333333,37.333335 c 4.034277,7.723836 1.504049,12.595784 -8,9.333333 m 5.333334,-2.666667 v 4.000001 m 56,-1.333334 c -0.66506,3.749471 -1.273946,13.887615 2.13271,18.382732 3.202203,4.225342 7.873843,5.902913 11.200623,7.255127 5.00155,2.032959 11.30037,4.646688 18.66667,5.028809 M 30.666667,57.333335 c 4.623647,4.219971 17.565404,11.818563 24,14.886841 7.154856,3.411744 8.093551,3.157553 10.666666,-0.220174 l -6.666666,1.333334 M 146.66667,60.000002 C 140.09175,67.879559 134.20327,70.581098 124,70.666669 m -60,-2.666667 -1.333333,1.333334 m 90.666663,0 c 3.48328,-0.264893 6.92936,-1.798422 12,0.233561 6.6837,2.678385 15.80742,11.552328 21.30042,16.299357 2.76416,2.388754 4.66431,4.185873 6.69958,6.133749 M 65.333333,70.666669 68,69.333336 m -6.666667,4 H 64 m 22.666667,10.666667 c 5.401896,3.341919 12.842214,6.696777 20.000003,9.94751 2.4771,1.125 6.85221,2.685832 10.66666,3.158447 6.27525,0.777547 10.7251,1.253581 16,2.93213 13.36854,4.25411 33.5697,24.09493 53.33334,26.55656 6.09137,0.75871 9.41758,1.39355 13.33333,1.19238 10.84216,-0.55705 21.98891,-2.76872 29.33333,-4.45369 2.79802,-0.64193 6.2284,-3.72445 13.33334,-2.16976 4.82261,1.05526 17.14194,10.28072 20.56583,13.74898 7.93083,8.03357 18.95887,20.30876 24.22223,27.54012 1.32685,1.82296 2.96605,3.89518 3.21194,4.21399 m -176,-69.333334 c 2.04287,9.772174 0.75965,12.666184 8.85083,22.386844 3.3049,3.97046 12.02571,8.85298 17.81583,11.9681 14.38467,7.73901 27.19511,15.39628 41.33334,22.21089 14.88901,7.17652 21.96423,11.33724 38.66666,22.00928 9.42823,6.02417 12.84349,6.36316 15.99384,7.82919 1.20054,0.55867 4.1756,1.62614 6.88169,5.66874 6.67397,9.97013 3.02718,14.18986 7.63784,29.26029 2.66406,8.70781 4.25197,12.48686 5.97839,17.33334 2.5484,7.15393 5.74128,14.71826 7.48765,22.66666 0.85067,3.87175 4.06055,12.75334 -0.0165,17.86113 -5.43841,6.8134 -17.75467,-1.57621 -21.29628,-2.94238 -13.15729,-5.07532 -25.05119,-5.21367 -45.33333,-7.1451 -4.25586,-0.40528 -11.71513,-1.97522 -15.76852,-0.30245 -4.55735,1.88073 -5.35315,4.59135 -6.27881,5.88785 -2.65203,3.71456 -3.13348,6.47201 -9.29012,14.64096 -5.90728,7.83805 -10.41679,18.40478 -15.3498,26.66666 -3.67265,6.15102 -6.5688,9.10759 -9.31275,12 m 86.66666,-141.33333 c 1.54356,2.19124 2.94916,4.06677 5.41152,6.69958 0.41112,0.43958 1.73594,1.77067 3.91667,3.9609 4.15181,4.16992 7.09169,7.09273 8.00515,8.00618 M 304,205.33334 c 9.52553,0.0799 20.92043,5.97677 34.66667,9.8066 3.34326,0.93148 7.09261,0.8953 10.66666,0.87345 5.02071,-0.0307 11.79204,0.24512 17.33334,4.94031 11.01216,9.33069 14.26688,-0.26558 25.69649,15.29321 3.49756,4.76111 3.01489,9.26612 5.15637,13.03394 3.3079,5.82015 7.30921,6.93205 10.11731,13.39095 2.16036,4.96904 4.3999,9.18966 2.20577,14.52161 -2.10201,5.10811 -9.13651,7.0448 -13.84261,7.73869 -4.25517,0.6274 -8.16992,-0.0317 -12,0.56278 -4.99072,0.77466 -5.81938,2.45805 -12,3.43209 -5.31401,0.83748 -11.12219,0.40637 -14.66667,0.40637 L 352.93518,272.22637 345.41154,261.32821 344,248.00001 c 9.84212,-0.0282 12.04993,-0.45642 15.57613,-4.30453 2.42794,-2.64957 2.90747,-7.34358 3.33024,-10.3601 0.63806,-4.5527 1.60791,-6.75155 2.42696,-9.33537 M 166.66667,210.66667 c -3.85874,14.67058 -1.48799,17.93262 0.56584,33.33334 0.7747,5.80912 0.77436,8.54683 1.57099,10.66565 1.64758,4.38212 5.27715,7.67159 11.1965,9.33435 m 161.33333,-46.66667 c -4.8313,5.71358 -10.16711,15.54057 2.66667,30.66667 m -50.Line truncated
id="path1" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 212 KiB

+1 -1
View File
@@ -27,7 +27,7 @@ function RawModal({
}
useEffect(() => {
navigation.setIsRawModalVisible(isOpen);
navigation.isRawModalVisible = isOpen;
}, [isOpen]);
const modalOverlayClass = (overlayClassName !== null) ? `${overlayClassName} ` : '';
@@ -52,7 +52,7 @@ function ExportE2ERoomKeys() {
const blob = new Blob([encKeys], {
type: 'text/plain;charset=us-ascii',
});
FileSaver.saveAs(blob, 'cinny-keys.txt');
FileSaver.saveAs(blob, 'versi-keys.txt');
if (isMountStore.getItem()) {
setStatus({
isOngoing: false,
+5 -1
View File
@@ -557,7 +557,11 @@ async function handleRepeat(mEvent){
console.log(mEvent);
const opt = {};
opt.msgType = 'm.text';
initMatrix.roomsInput.setMessage(mEvent.sender.roomId, mEvent.clearEvent.content.body);
if(mEvent.clearEvent){
initMatrix.roomsInput.setMessage(mEvent.sender.roomId, mEvent.clearEvent.content.body);
} else {
initMatrix.roomsInput.setMessage(mEvent.sender.roomId, mEvent.event.content.body);
}
await initMatrix.roomsInput.sendInput(mEvent.sender.roomId, opt);
}
@@ -5,23 +5,23 @@ import initMatrix from '../../../client/initMatrix';
import Button from '../../atoms/button/Button';
import Text from '../../atoms/text/Text';
import './RoomTimezone.scss';
//import 'RoomTimezone.scss';
function RoomTimezone({ roomId }) {
const mx = initMatrix.matrixClient;
const room = mx.getRoom(roomId);
const userId = mx.getUserId();
const timezoneEventId = room.currentState.getStateEvents('in.cinny.shared_timezone', userId)?.event?.content?.user_timezone_event;
const timezoneEventId = room.currentState.getStateEvents('in.versi.shared_timezone', userId)?.event?.content?.user_timezone_event;
const timezoneEvent = room.findEventById(timezoneEventId);
const timezoneContent = timezoneEvent?.getContent();
const [timezone, setTimezone] = useState(timezoneContent?.user_timezone);
const clearTimezone = () => {
const eventKey = room.currentState.getStateEvents('in.cinny.shared_timezone', userId)?.event?.content?.user_timezone_event;
const eventKey = room.currentState.getStateEvents('in.versi.shared_timezone', userId)?.event?.content?.user_timezone_event;
mx.redactEvent(roomId, eventKey);
mx.sendStateEvent(roomId, 'in.cinny.shared_timezone', { }, userId);
mx.sendStateEvent(roomId, 'in.versi.shared_timezone', { }, userId);
setTimezone(null);
};
@@ -30,11 +30,11 @@ function RoomTimezone({ roomId }) {
setTimezone(userTimezone);
const content = {
user_timezone: userTimezone,
msgtype: 'in.cinny.share_timezone',
msgtype: 'in.versi.share_timezone',
};
mx.sendEvent(roomId, 'in.cinny.share_timezone', content).then((event) => {
mx.sendEvent(roomId, 'in.versi.share_timezone', content).then((event) => {
// Append the shared timezone event to the room state
mx.sendStateEvent(roomId, 'in.cinny.shared_timezone', { user_timezone_event: event.event_id }, userId);
mx.sendStateEvent(roomId, 'in.versi.shared_timezone', { user_timezone_event: event.event_id }, userId);
});
};
@@ -63,4 +63,4 @@ RoomTimezone.propTypes = {
roomId: PropTypes.string.isRequired,
};
export default RoomTimezone;
export default RoomTimezone;
+2 -2
View File
@@ -25,7 +25,7 @@ function RoomBanner({ roomId }) {
partner = room.getAvatarFallbackMember();
}
const timezoneEventId = room.currentState.getStateEvents('in.cinny.shared_timezone', partner?.userId)?.event?.content?.user_timezone_event;
const timezoneEventId = room.currentState.getStateEvents('in.versi.shared_timezone', partner?.userId)?.event?.content?.user_timezone_event;
const timezoneEvent = room.findEventById(timezoneEventId);
let timezoneContent = null;
@@ -86,4 +86,4 @@ RoomBanner.propTypes = {
roomId: PropTypes.string.isRequired,
};
export default RoomBanner;
export default RoomBanner;
+8
View File
@@ -44,6 +44,7 @@ function useVisiblityToggle(setResult) {
}, [isOpen]);
const requestClose = () => setIsOpen(false);
navigation.on(cons.events.navigation.REQUEST_CLOSE, requestClose);
return [isOpen, requestClose];
}
@@ -154,6 +155,12 @@ function Search() {
}
};
const handleKeyPress = (e) => {
if (e.key === 'Backspace' && searchRef.current.value.length === 0) {
requestClose();
}
};
const openItem = (roomId, type) => {
if (type === 'space') selectTab(roomId);
else selectRoom(roomId);
@@ -210,6 +217,7 @@ function Search() {
onChange={handleOnChange}
forwardRef={searchRef}
placeholder="Search"
onKeyDown={handleKeyPress}
/>
<IconButton size="small" src={CrossIC} type="reset" onClick={handleCross} tabIndex={-1} />
</form>
+10 -8
View File
@@ -44,7 +44,7 @@ import PowerIC from '../../../../public/res/ic/outlined/power.svg';
import CrossIC from '../../../../public/res/ic/outlined/cross.svg';
import AddUserIC from '../../../../public/res/ic/outlined/add-user.svg';
import CinnySVG from '../../../../public/res/svg/cinny.svg';
import VersiSVG from '../../../../public/res/svg/versi.svg';
import { confirmDialog } from '../../molecules/confirm-dialog/ConfirmDialog';
import '../../i18n.jsx'
@@ -107,7 +107,7 @@ function AppearanceSection() {
{ text: 'Butter' },
{ text: 'NGA'},
{ text: 'NGA Green'},
{ text: '?'}
//{ text: '?'}
]}
onSelect={(index) => {
if (settings.useSystemTheme) toggleSystemTheme();
@@ -148,7 +148,7 @@ function AppearanceSection() {
onToggle={() => { toggleHideNavigation(); updateState({}); }}
/>
)}
content={<Text variant="b3">Hide the navigation bar by default, when cinny is opened.</Text>}
content={<Text variant="b3">Hide the navigation bar by default, when Versi is opened.</Text>}
/>
<SettingTile
title="Hide nick/avatar events"
@@ -358,18 +358,18 @@ function AboutSection() {
<div className="settings-about__card">
<MenuHeader>Application</MenuHeader>
<div className="settings-about__branding">
<img width="60" height="60" src={CinnySVG} alt="Cinny logo" />
<img width="60" height="60" src={VersiSVG} alt="Versi logo" />
<div>
<Text variant="h2" weight="medium">
Cinny Mod
<span className="text text-b3" style={{ margin: '0 var(--sp-extra-tight)' }}>{`v${cons.version}.5114514`}</span>
Versi Mod
<span className="text text-b3" style={{ margin: '0 var(--sp-extra-tight)' }}>{`v${cons.version}.52`}</span>
</Text>
<Text>Yet another matrix client</Text>
<Text>Modded By WHK(a.k.a CroiX) with magic & love</Text>
<div className="settings-about__btns">
<Button onClick={() => window.open('https://github.com/ajbura/cinny')}>Source code</Button>
<Button onClick={() => window.open('https://cinny.in/#sponsor')}>Support</Button>
<Button onClick={() => window.open('https://github.com/NotAlexNoyle/Versi')}>Source code</Button>
<Button onClick={() => window.open('https://store.true-og.net')}>Support</Button>
<Button onClick={() => initMatrix.clearCacheAndReload()} variant="danger">Clear cache & reload</Button>
</div>
</div>
@@ -449,6 +449,8 @@ function useWindowToggle(setSelectedTab) {
const requestClose = () => setIsOpen(false);
navigation.on(cons.events.navigation.REQUEST_CLOSE, requestClose);
return [isOpen, requestClose];
}
+4 -4
View File
@@ -3,15 +3,15 @@ import './Welcome.scss';
import Text from '../../atoms/text/Text';
import CinnySvg from '../../../../public/res/svg/cinny.svg';
import VersiSvg from '../../../../public/res/svg/versi.svg';
function Welcome() {
return (
<div className="app-welcome flex--center">
<div>
<img className="app-welcome__logo noselect" src={CinnySvg} alt="Cinny logo" />
<Text className="app-welcome__heading" variant="h1" weight="medium" primary>Welcome to Cinny</Text>
<Text className="app-welcome__subheading" variant="s1">Yet another matrix client</Text>
<img className="app-welcome__logo noselect" src={VersiSvg} alt="Versi logo" />
<Text className="app-welcome__heading" variant="h1" weight="medium" primary>Welcome to Versi</Text>
<Text className="app-welcome__subheading" variant="s1">A liberated MIT-licensed fork of Cinny 2.2.4 maintained by and for TrueOG Network.</Text>
</div>
</div>
);
+11 -11
View File
@@ -23,7 +23,7 @@ import ContextMenu, { MenuItem, MenuHeader } from '../../atoms/context-menu/Cont
import ChevronBottomIC from '../../../../public/res/ic/outlined/chevron-bottom.svg';
import EyeIC from '../../../../public/res/ic/outlined/eye.svg';
import EyeBlindIC from '../../../../public/res/ic/outlined/eye-blind.svg';
import CinnySvg from '../../../../public/res/svg/cinny.svg';
import VersiSvg from '../../../../public/res/svg/versi.svg';
import SSOButtons from '../../molecules/sso-buttons/SSOButtons';
import colorMXID from '../../../util/colorMXID';
import PeopleSelector from '../../molecules/people-selector/PeopleSelector';
@@ -565,24 +565,24 @@ function Auth() {
{!loginToken && (
<div className="auth-card">
<Header>
<Avatar size="extra-small" imageSrc={CinnySvg} />
<Avatar size="extra-small" imageSrc={VersiSvg} />
<TitleWrapper>
<Text variant="h2" weight="medium">Cinny</Text>
<Text variant="h2" weight="medium">Versi</Text>
</TitleWrapper>
</Header>
{(() => {
let loggedInUsers = JSON.parse(window.localStorage.getItem("loggedInUsers"));
if (!loggedInUsers) {
// 检查currentUser是否存在
const currentUser = window.localStorage.getItem('cinny_user_id');
const currentUser = window.localStorage.getItem('versi_user_id');
if(currentUser){
// 开始迁移
window.localStorage.setItem('loggedInUsers', JSON.stringify([currentUser]));
window.localStorage.setItem('currentUser', currentUser);
window.localStorage.setItem(`${currentUser}.cinny_access_token`, window.localStorage.getItem('cinny_access_token'));
window.localStorage.setItem(`${currentUser}.cinny_device_id`, window.localStorage.getItem('cinny_device_id'));
window.localStorage.setItem(`${currentUser}.cinny_hs_base_url`, window.localStorage.getItem('cinny_hs_base_url'));
window.localStorage.setItem(`${currentUser}.cinny_user_id`, window.localStorage.getItem('cinny_user_id'));
window.localStorage.setItem(`${currentUser}.versi_access_token`, window.localStorage.getItem('versi_access_token'));
window.localStorage.setItem(`${currentUser}.versi_device_id`, window.localStorage.getItem('versi_device_id'));
window.localStorage.setItem(`${currentUser}.versi_hs_base_url`, window.localStorage.getItem('versi_hs_base_url'));
window.localStorage.setItem(`${currentUser}.versi_user_id`, window.localStorage.getItem('versi_user_id'));
} else{
loggedInUsers = []
}
@@ -610,13 +610,13 @@ function Auth() {
<div className="auth-footer">
<Text variant="b2">
<a href="https://cinny.in" target="_blank" rel="noreferrer">About</a>
<a href="https://chat.true-og.net" target="_blank" rel="noreferrer">About</a>
</Text>
<Text variant="b2">
<a href="https://github.com/ajbura/cinny/releases" target="_blank" rel="noreferrer">{`v${cons.version}`}</a>
<a href="https://github.com/NotAlexNoyle/Versi/releases" target="_blank" rel="noreferrer">{`v${cons.version}`}</a>
</Text>
<Text variant="b2">
<a href="https://twitter.com/cinnyapp" target="_blank" rel="noreferrer">Twitter</a>
<a href="https://mastodon.gamedev.place/@trueog" target="_blank" rel="noreferrer">Mastodon</a>
</Text>
<Text variant="b2">
<a href="https://matrix.org" target="_blank" rel="noreferrer">Powered by Matrix</a>
+3 -3
View File
@@ -91,7 +91,7 @@ function Client() {
return (
<div className="loading-display">
{/* <div className="watermark">Cinny Mod</div> */}
{/* <div className="watermark">Versi Mod</div> */}
<div className="loading__menu">
<ContextMenu
placement="bottom"
@@ -110,7 +110,7 @@ function Client() {
<Text className="loading__message" variant="b2">{loadingMsg}</Text>
<div className="loading__appname">
<Text variant="h2" weight="medium">Cinny</Text>
<Text variant="h2" weight="medium">Versi</Text>
</div>
</div>
);
@@ -192,7 +192,7 @@ function Client() {
onDragLeave={handleDragLeave}
onDrop={handleDrop}
>
{/* <div className="watermark">Cinny Mod</div> */}
{/* <div className="watermark">Versi Mod</div> */}
<div className={`navigation__wrapper ${settings.hideNavigation && roomSelected ? toggleHidden : ''}`} ref={navWrapperRef}>
<Navigation />
</div>
+6
View File
@@ -195,3 +195,9 @@ export function openEmojiVerification(request, targetDevice) {
targetDevice,
});
}
export function requestClose() {
appDispatcher.dispatch({
type: cons.actions.navigation.REQUEST_CLOSE,
});
}
+7 -3
View File
@@ -1,4 +1,4 @@
import { openSearch, toggleRoomSettings } from '../action/navigation';
import { openSearch, toggleRoomSettings, requestClose } from '../action/navigation';
import navigation from '../state/navigation';
import { markAsRead } from '../action/notifications';
@@ -50,9 +50,12 @@ function listenKeyboard(event) {
}
if (!event.ctrlKey && !event.altKey && !event.metaKey) {
if (navigation.isRawModalVisible) return;
if (event.key === 'Escape') {
if (navigation.isRawModalVisible) {
requestClose();
return;
}
if (navigation.isRoomSettings) {
toggleRoomSettings();
return;
@@ -62,6 +65,7 @@ function listenKeyboard(event) {
return;
}
}
if (navigation.isRawModalVisible) return;
if (['input', 'textarea'].includes(document.activeElement.tagName.toLowerCase())) {
return;
+3 -3
View File
@@ -7,9 +7,9 @@ import navigation from './navigation';
import settings from './settings';
import { setFavicon } from '../../util/common';
import LogoSVG from '../../../public/res/svg/cinny.svg';
import LogoUnreadSVG from '../../../public/res/svg/cinny-unread.svg';
import LogoHighlightSVG from '../../../public/res/svg/cinny-highlight.svg';
import LogoSVG from '../../../public/res/svg/versi.svg';
import LogoUnreadSVG from '../../../public/res/svg/versi-unread.svg';
import LogoHighlightSVG from '../../../public/res/svg/versi-highlight.svg';
import { html, plain } from '../../util/markdown';
function isNotifEvent(mEvent) {
+7 -6
View File
@@ -1,13 +1,13 @@
const cons = {
version: '2.2.6',
secretKey: {
ACCESS_TOKEN: 'cinny_access_token',
DEVICE_ID: 'cinny_device_id',
USER_ID: 'cinny_user_id',
BASE_URL: 'cinny_hs_base_url',
ACCESS_TOKEN: 'versi_access_token',
DEVICE_ID: 'versi_device_id',
USER_ID: 'versi_user_id',
BASE_URL: 'versi_hs_base_url',
},
DEVICE_DISPLAY_NAME: 'Cinny Web',
IN_CINNY_SPACES: 'in.cinny.spaces',
DEVICE_DISPLAY_NAME: 'Versi Web',
IN_CINNY_SPACES: 'in.versi.spaces',
tabs: {
HOME: 'home',
DIRECTS: 'dm',
@@ -106,6 +106,7 @@ const cons = {
JOIN_ALIAS_OPENED: 'JOIN_ALIAS_OPENED',
INVITE_USER_OPENED: 'INVITE_USER_OPENED',
SETTINGS_OPENED: 'SETTINGS_OPENED',
REQUEST_CLOSE: 'REQUEST_CLOSE',
PROFILE_VIEWER_OPENED: 'PROFILE_VIEWER_OPENED',
EMOJIBOARD_OPENED: 'EMOJIBOARD_OPENED',
READRECEIPTS_OPENED: 'READRECEIPTS_OPENED',
+6 -1
View File
@@ -276,7 +276,7 @@ class Navigation extends EventEmitter {
return this.rawModelStack.length > 0;
}
setIsRawModalVisible(visible) {
set isRawModalVisible(visible) {
if (visible) this.rawModelStack.push(true);
else this.rawModelStack.pop();
}
@@ -393,6 +393,11 @@ class Navigation extends EventEmitter {
action.term,
);
},
[cons.actions.navigation.REQUEST_CLOSE]: () => {
this.emit(
cons.events.navigation.REQUEST_CLOSE,
);
},
[cons.actions.navigation.OPEN_REUSABLE_CONTEXT_MENU]: () => {
this.emit(
cons.events.navigation.REUSABLE_CONTEXT_MENU_OPENED,
+1 -1
View File
@@ -29,7 +29,7 @@ function mathHtml(wrap, node) {
return htmlTag(wrap, htmlTag('code', sanitizeText(node.content)), { 'data-mx-maths': node.content });
}
const emojiRegex = /^:([\w-]+):/;
const emojiRegex = /^:([^:]+):/;
const plainRules = {
Array: {