mirror of
https://github.com/cinnyapp/cinny.git
synced 2025-11-12 02:00:28 +03:00
Editor Commands (#1450)
* add commands hook * add commands in editor * add command auto complete menu * add commands in room input * remove old reply code from room input * fix video component css * do not auto focus input on android or ios * fix crash on enable block after selection * fix circular deps in editor * fix autocomplete return focus move editor cursor * remove unwanted keydown from room input * fix emoji alignment in editor * test ipad user agent * refactor isAndroidOrIOS to mobileOrTablet * update slate & slate-react * downgrade slate-react to 0.98.4 0.99.0 has breaking changes with ReactEditor.focus * add sql to readable ext mimetype * fix empty editor formatting gets saved as draft * add option to use enter for newline * remove empty msg draft from atom family * prevent msg ctx menu from open on text selection
This commit is contained in:
parent
4d0b6b93bc
commit
613e6d6503
34 changed files with 620 additions and 131 deletions
|
|
@ -162,10 +162,10 @@ export const factoryEventSentBy = (senderId: string) => (ev: MatrixEvent) =>
|
|||
export const eventWithShortcode = (ev: MatrixEvent) =>
|
||||
typeof ev.getContent().shortcode === 'string';
|
||||
|
||||
export const trimReplyFromBody = (body: string): string => {
|
||||
if (body.match(/^> <.+>/) === null) return body;
|
||||
export function hasDMWith(mx: MatrixClient, userId: string) {
|
||||
const dmLikeRooms = mx
|
||||
.getRooms()
|
||||
.filter((room) => mx.isRoomEncrypted(room.roomId) && room.getMembers().length <= 2);
|
||||
|
||||
const trimmedBody = body.slice(body.indexOf('\n\n') + 2);
|
||||
|
||||
return trimmedBody || body;
|
||||
};
|
||||
return dmLikeRooms.find((room) => room.getMember(userId));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -92,6 +92,7 @@ export const READABLE_EXT_TO_MIME_TYPE: Record<string, string> = {
|
|||
me: 'text/me',
|
||||
cvs: 'text/cvs',
|
||||
tvs: 'text/tvs',
|
||||
sql: 'text/sql',
|
||||
};
|
||||
|
||||
export const ALLOWED_BLOB_MIME_TYPES = [
|
||||
|
|
|
|||
|
|
@ -3,3 +3,11 @@ import { UAParser } from 'ua-parser-js';
|
|||
export const ua = () => UAParser(window.navigator.userAgent);
|
||||
|
||||
export const isMacOS = () => ua().os.name === 'Mac OS';
|
||||
|
||||
export const mobileOrTablet = (): boolean => {
|
||||
const userAgent = ua();
|
||||
const { os, device } = userAgent;
|
||||
if (device.type === 'mobile' || device.type === 'tablet') return true;
|
||||
if (os.name === 'Android' || os.name === 'iOS') return true;
|
||||
return false;
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue