├── .github └── logo.png ├── .gitignore ├── .vscode └── extensions.json ├── LICENSE ├── README.md ├── index.html ├── package-lock.json ├── package.json ├── public ├── bg.png ├── empty.svg ├── file-download.png ├── file-upload.png ├── icon │ ├── chat-empty.png │ ├── chat.png │ ├── notify-empty.png │ ├── notify.png │ ├── set-empty.png │ ├── set.png │ ├── talk-empty.png │ ├── talk.png │ ├── user-empty.png │ └── user.png ├── id.png ├── linyu.png ├── logo.png ├── tauri.svg └── updater.png ├── src-tauri ├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── audio │ ├── remind-short.wav │ └── remind.wav ├── build.rs ├── capabilities │ └── default.json ├── icons │ ├── 128x128.png │ ├── 128x128@2x.png │ ├── 32x32.png │ ├── Square107x107Logo.png │ ├── Square142x142Logo.png │ ├── Square150x150Logo.png │ ├── Square284x284Logo.png │ ├── Square30x30Logo.png │ ├── Square310x310Logo.png │ ├── Square44x44Logo.png │ ├── Square71x71Logo.png │ ├── Square89x89Logo.png │ ├── StoreLogo.png │ ├── icon.icns │ ├── icon.ico │ └── icon.png ├── src │ ├── main.rs │ ├── tray.rs │ └── user_cmd.rs └── tauri.conf.json ├── src ├── App.css ├── App.jsx ├── api │ ├── chatGroup.js │ ├── chatGroupMember.js │ ├── chatGroupNotice.js │ ├── chatList.js │ ├── friend.js │ ├── group.js │ ├── login.js │ ├── message.js │ ├── notify.js │ ├── qr.js │ ├── talk.js │ ├── talkComment.js │ ├── talkLike.js │ ├── user.js │ ├── userSet.js │ └── video.js ├── assets │ ├── iconfont.css │ ├── iconfont.ttf │ ├── iconfont.woff │ └── iconfont.woff2 ├── componets │ ├── ChatGroupInvite │ │ ├── index.jsx │ │ └── index.less │ ├── CircularProgressBar │ │ ├── index.jsx │ │ └── index.less │ ├── CommonChatFrame │ │ ├── ChatContent │ │ │ ├── Call │ │ │ │ ├── index.jsx │ │ │ │ └── index.less │ │ │ ├── File │ │ │ │ ├── index.jsx │ │ │ │ └── index.less │ │ │ ├── Img │ │ │ │ ├── index.jsx │ │ │ │ └── index.less │ │ │ ├── MsgContent │ │ │ │ └── index.jsx │ │ │ ├── Retraction │ │ │ │ ├── index.jsx │ │ │ │ └── index.less │ │ │ ├── SystemMsg │ │ │ │ ├── index.jsx │ │ │ │ └── index.less │ │ │ ├── Text │ │ │ │ ├── index.jsx │ │ │ │ └── index.less │ │ │ ├── Time │ │ │ │ ├── index.jsx │ │ │ │ └── index.less │ │ │ └── Voice │ │ │ │ ├── index.jsx │ │ │ │ └── index.less │ │ ├── index.jsx │ │ └── index.less │ ├── CustomAccordion │ │ ├── index.jsx │ │ └── index.less │ ├── CustomAffirmModal │ │ ├── index.jsx │ │ └── index.less │ ├── CustomAudio │ │ ├── index.jsx │ │ └── index.less │ ├── CustomBox │ │ ├── index.jsx │ │ └── index.less │ ├── CustomButton │ │ ├── index.css │ │ └── index.jsx │ ├── CustomDragDiv │ │ └── index.jsx │ ├── CustomDrawer │ │ ├── index.jsx │ │ └── index.less │ ├── CustomDropdown │ │ ├── index.jsx │ │ └── index.less │ ├── CustomEditableText │ │ ├── index.jsx │ │ └── index.less │ ├── CustomEmpty │ │ └── index.jsx │ ├── CustomImg │ │ ├── index.jsx │ │ └── index.less │ ├── CustomInput │ │ ├── index.jsx │ │ └── index.less │ ├── CustomLine │ │ ├── index.jsx │ │ └── index.less │ ├── CustomModal │ │ ├── index.jsx │ │ └── index.less │ ├── CustomOverlay │ │ ├── index.jsx │ │ └── index.less │ ├── CustomPwdInput │ │ ├── index.jsx │ │ └── index.less │ ├── CustomSearchInput │ │ ├── index.jsx │ │ └── index.less │ ├── CustomSelectionIcon │ │ └── index.jsx │ ├── CustomShortcutInput │ │ ├── index.jsx │ │ └── index.less │ ├── CustomSoundIcon │ │ ├── index.jsx │ │ └── index.less │ ├── CustomSwitch │ │ ├── index.jsx │ │ └── index.less │ ├── CustomTextarea │ │ ├── index.jsx │ │ └── index.less │ ├── CustomToast │ │ ├── index.jsx │ │ └── index.less │ ├── CustomTooltip │ │ ├── index.jsx │ │ └── index.less │ ├── CustomUserNameInput │ │ ├── index.jsx │ │ └── index.less │ ├── DropdownButton │ │ ├── index.jsx │ │ └── index.less │ ├── FriendSearchCard │ │ ├── index.jsx │ │ └── index.less │ ├── IconButton │ │ ├── index.css │ │ └── index.jsx │ ├── IconMinorButton │ │ ├── index.jsx │ │ └── index.less │ ├── MsgContentShow │ │ └── index.jsx │ ├── ProgressBar │ │ ├── index.jsx │ │ └── index.less │ ├── QRCodeGenerator │ │ └── index.jsx │ ├── QuillRichTextEditor │ │ ├── index.css │ │ └── index.jsx │ ├── RichTextEditor │ │ ├── index.jsx │ │ └── index.less │ ├── RightClickContent │ │ ├── index.jsx │ │ └── index.less │ ├── RightClickMenu │ │ ├── index.jsx │ │ └── index.less │ ├── VoiceRecorder │ │ ├── index.jsx │ │ └── index.less │ └── WindowOperation │ │ ├── index.jsx │ │ └── index.less ├── main.jsx ├── pages │ ├── AboutWindow │ │ ├── index.jsx │ │ ├── index.less │ │ └── window.jsx │ ├── ChatGroupNotice │ │ ├── index.jsx │ │ ├── index.less │ │ └── window.jsx │ ├── ChatWindow │ │ ├── index.jsx │ │ ├── index.less │ │ └── window.jsx │ ├── Command │ │ ├── index.jsx │ │ ├── index.less │ │ └── window.jsx │ ├── ForgetPassword │ │ ├── index.jsx │ │ ├── index.less │ │ └── window.jsx │ ├── Home │ │ ├── Chat │ │ │ ├── index.jsx │ │ │ └── index.less │ │ ├── Friend │ │ │ ├── index.jsx │ │ │ └── index.less │ │ ├── Notify │ │ │ ├── FriendNotify │ │ │ │ ├── index.jsx │ │ │ │ └── index.less │ │ │ ├── SystemNotify │ │ │ │ ├── index.jsx │ │ │ │ └── index.less │ │ │ ├── index.jsx │ │ │ └── index.less │ │ ├── Set │ │ │ ├── General │ │ │ │ ├── index.jsx │ │ │ │ └── index.less │ │ │ ├── MessageNotify │ │ │ │ ├── index.jsx │ │ │ │ └── index.less │ │ │ ├── Shortcut │ │ │ │ ├── index.jsx │ │ │ │ └── index.less │ │ │ ├── index.jsx │ │ │ └── index.less │ │ ├── Talk │ │ │ ├── AllTalk │ │ │ │ ├── index.jsx │ │ │ │ └── index.less │ │ │ ├── CreateTalk │ │ │ │ ├── index.jsx │ │ │ │ └── index.less │ │ │ ├── DetailTalk │ │ │ │ ├── index.jsx │ │ │ │ └── index.less │ │ │ ├── index.jsx │ │ │ └── index.less │ │ ├── index.jsx │ │ ├── index.less │ │ └── window.jsx │ ├── ImageViewer │ │ ├── index.jsx │ │ ├── index.less │ │ └── window.jsx │ ├── Login │ │ ├── AccountLogin │ │ │ └── index.jsx │ │ ├── LoginSet │ │ │ └── index.jsx │ │ ├── QrCodeLogin │ │ │ ├── index.jsx │ │ │ └── index.less │ │ ├── index.jsx │ │ ├── index.less │ │ └── window.jsx │ ├── MessageBox │ │ ├── index.jsx │ │ ├── index.less │ │ └── window.jsx │ ├── Register │ │ ├── index.jsx │ │ ├── index.less │ │ └── window.jsx │ ├── TrayMenu │ │ ├── index.jsx │ │ ├── index.less │ │ └── window.jsx │ ├── VideoChat │ │ ├── index.jsx │ │ ├── index.less │ │ └── window.jsx │ └── screenshot │ │ ├── index.jsx │ │ ├── index.less │ │ └── window.jsx ├── store │ ├── chat │ │ ├── action.js │ │ ├── reducer.js │ │ └── type.js │ ├── home │ │ ├── action.js │ │ ├── reducer.js │ │ └── type.js │ └── index.jsx ├── styles.css └── utils │ ├── api.js │ ├── date.js │ ├── emoji.js │ ├── img.js │ ├── shortcut.js │ ├── storage.js │ ├── string.js │ └── ws.js └── vite.config.js /.github/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DWHengr/linyu-client/dbee9d47bf4d9d61d0c47fd9b4434c14f3586e30/.github/logo.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["tauri-apps.tauri-vscode", "rust-lang.rust-analyzer"] 3 | } 4 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 |