From 4deedf781a78db01398ca524859e48e10f52dce8 Mon Sep 17 00:00:00 2001 From: marlon-erler Date: Thu, 24 Sep 2026 15:16:13 +0200 Subject: [PATCH] merge reply view header with message page title bar --- 1.vim | 1737 +++++++++---------- src/View/ChatPages/messagePage.css | 4 + src/View/ChatPages/messagePage.tsx | 288 +-- src/View/translations.ts | 6 +- src/ViewModel/Pages/messagePageViewModel.ts | 1 + 5 files changed, 940 insertions(+), 1096 deletions(-) diff --git a/1.vim b/1.vim index 1e3e52f4..e7845fe4 100644 --- a/1.vim +++ b/1.vim @@ -138,9 +138,6 @@ set shiftwidth=4 set smarttab set suffixes=.bak,~,.swp,.o,.info,.aux,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.out,.toc set updatetime=500 -set window=39 -set winminheight=0 -set winminwidth=0 let s:so_save = &g:so | let s:siso_save = &g:siso | setg so=0 siso=0 | setl so=-1 siso=-1 let v:this_session=expand(":p") silent only @@ -154,27 +151,24 @@ if &shortmess =~ 'A' else set shortmess=aoO endif -badd +131 src/ViewModel/Pages/messagePageViewModel.ts -badd +1 src/ViewModel/Chat/chatMessageViewModel.ts -badd +482 src/Model/Chat/chatModel.ts -badd +14 src/View/Components/chatMessage.tsx -badd +1 src/View/Components/inlineReply.tsx -badd +5 src/View/Components/replyLink.tsx -badd +874 src/View/translations.ts -badd +266 src/View/chatPage.css -badd +19 src/View/ChatPages/messagePage.css -badd +7 src/View/Components/replyViewHeader.tsx -badd +0 src/View/ChatPages/messagePage.tsx -badd +80 src/View/Modals/messageFilterModal.tsx -badd +10 src/View/Components/monthGrid.tsx -badd +25 src/ViewModel/Global/coreViewModel.ts +badd +129 src/ViewModel/Chat/chatViewModel.ts +badd +157 src/ViewModel/Pages/messagePageViewModel.ts +badd +465 src/Model/Chat/chatModel.ts +badd +113 src/ViewModel/Chat/chatMessageViewModel.ts +badd +13 src/ViewModel/Global/coreViewModel.ts +badd +7 src/View/ChatPages/messagePage.css +badd +79 src/View/ChatPages/messagePage.tsx +badd +75 src/View/Components/chatMessage.tsx +badd +77 src/View/Modals/chatMessageInfoModal.tsx +badd +0 src/View/Components/replyViewHeader.tsx +badd +0 src/View/translations.ts argglobal %argdel set stal=2 tabnew +setlocal\ bufhidden=wipe tabnew +setlocal\ bufhidden=wipe tabrewind -edit src/ViewModel/Pages/messagePageViewModel.ts +edit src/View/ChatPages/messagePage.tsx let s:save_splitbelow = &splitbelow let s:save_splitright = &splitright set splitbelow splitright @@ -194,12 +188,13 @@ set winminheight=0 set winheight=1 set winminwidth=0 set winwidth=1 -exe 'vert 1resize ' . ((&columns * 31 + 91) / 183) -exe 'vert 2resize ' . ((&columns * 75 + 91) / 183) -exe 'vert 3resize ' . ((&columns * 75 + 91) / 183) +exe 'vert 1resize ' . ((&columns * 31 + 101) / 203) +exe 'vert 2resize ' . ((&columns * 85 + 101) / 203) +exe 'vert 3resize ' . ((&columns * 85 + 101) / 203) argglobal enew file NERD_tree_tab_1 +balt src/ViewModel/Chat/chatViewModel.ts let s:cpo_save=&cpo set cpo&vim nnoremap :call nerdtree#ui_glue#invokeKeyMap("") @@ -389,7 +384,7 @@ setlocal nowrap setlocal wrapmargin=0 wincmd w argglobal -balt src/ViewModel/Global/coreViewModel.ts +balt src/View/ChatPages/messagePage.css let s:cpo_save=&cpo set cpo&vim nmap [c (GitGutterPrevHunk) @@ -439,6 +434,542 @@ setlocal nodiff setlocal equalprg= setlocal errorformat=%+A\ %#%f\ %#(%l\\,%c):\ %m,%C%m setlocal noexpandtab +if &filetype != 'typescriptreact' +setlocal filetype=typescriptreact +endif +setlocal fillchars= +setlocal fixendofline +setlocal foldcolumn=0 +setlocal foldenable +setlocal foldexpr=0 +setlocal foldignore=# +setlocal foldlevel=0 +setlocal foldmarker={{{,}}} +setlocal foldmethod=manual +setlocal foldminlines=1 +setlocal foldnestmax=20 +setlocal foldtext=foldtext() +setlocal formatexpr= +setlocal formatoptions=croql +setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s* +setlocal formatprg= +setlocal grepprg= +setlocal iminsert=0 +setlocal imsearch=-1 +setlocal include= +setlocal includeexpr= +setlocal indentexpr=GetTsxIndent() +setlocal indentkeys=0{,0},0),0],0,,!^F,o,O,e,*,<>>,<<>,/ +setlocal noinfercase +setlocal iskeyword=@,48-57,_,192-255,$ +setlocal keywordprg= +setlocal nolinebreak +setlocal nolisp +setlocal lispoptions= +setlocal lispwords= +setlocal nolist +setlocal listchars= +setlocal makeencoding= +setlocal makeprg=tsc\ \ $*\ % +setlocal matchpairs=(:),{:},[:] +setlocal nomodeline +setlocal modifiable +setlocal nrformats=bin,octal,hex +set number +setlocal number +setlocal numberwidth=4 +setlocal omnifunc= +setlocal path= +setlocal nopreserveindent +setlocal nopreviewwindow +setlocal quoteescape=\\ +setlocal noreadonly +setlocal norelativenumber +setlocal norightleft +setlocal rightleftcmd=search +setlocal noscrollbind +setlocal scrolloff=-1 +setlocal shiftwidth=4 +setlocal noshortname +setlocal showbreak= +setlocal sidescrolloff=-1 +set signcolumn=yes +setlocal signcolumn=yes +setlocal nosmartindent +setlocal nosmoothscroll +setlocal softtabstop=0 +setlocal nospell +setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+ +setlocal spellfile= +setlocal spelllang=en +setlocal spelloptions= +setlocal statusline= +setlocal suffixesadd=.ts,.tsx +setlocal swapfile +setlocal synmaxcol=3000 +if &syntax != 'typescriptreact' +setlocal syntax=typescriptreact +endif +setlocal tabstop=8 +setlocal tagcase= +setlocal tagfunc= +setlocal tags= +setlocal termwinkey= +setlocal termwinscroll=10000 +setlocal termwinsize= +setlocal textwidth=0 +setlocal thesaurus= +setlocal thesaurusfunc= +setlocal noundofile +setlocal undolevels=-123456 +setlocal varsofttabstop= +setlocal vartabstop= +setlocal virtualedit= +setlocal wincolor= +setlocal nowinfixheight +setlocal nowinfixwidth +setlocal wrap +setlocal wrapmargin=0 +silent! normal! zE +let &fdl = &fdl +let s:l = 81 - ((12 * winheight(0) + 18) / 37) +if s:l < 1 | let s:l = 1 | endif +keepjumps exe s:l +normal! zt +keepjumps 81 +normal! 016| +wincmd w +argglobal +if bufexists(fnamemodify("src/View/Components/replyViewHeader.tsx", ":p")) | buffer src/View/Components/replyViewHeader.tsx | else | edit src/View/Components/replyViewHeader.tsx | endif +balt src/View/Modals/chatMessageInfoModal.tsx +let s:cpo_save=&cpo +set cpo&vim +nmap [c (GitGutterPrevHunk) +nmap \hp (GitGutterPreviewHunk) +nmap \hu (GitGutterUndoHunk) +nmap \hs (GitGutterStageHunk) +xmap \hs (GitGutterStageHunk) +nmap ]c (GitGutterNextHunk) +xmap ac (GitGutterTextObjectOuterVisual) +omap ac (GitGutterTextObjectOuterPending) +xmap ic (GitGutterTextObjectInnerVisual) +omap ic (GitGutterTextObjectInnerPending) +let &cpo=s:cpo_save +unlet s:cpo_save +setlocal keymap= +setlocal noarabic +setlocal autoindent +setlocal backupcopy= +setlocal balloonexpr= +setlocal nobinary +setlocal nobreakindent +setlocal breakindentopt= +setlocal bufhidden= +setlocal buflisted +setlocal buftype= +setlocal nocindent +setlocal cinkeys=0{,0},0),0],:,0#,!^F,o,O,e +setlocal cinoptions= +setlocal cinscopedecls=public,protected,private +setlocal cinwords=if,else,while,do,for,switch +setlocal colorcolumn= +setlocal comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:- +setlocal commentstring=//\ %s +setlocal complete=.,w,b,u,t,i +setlocal concealcursor= +setlocal conceallevel=0 +setlocal completefunc= +setlocal nocopyindent +setlocal cryptmethod= +setlocal nocursorbind +setlocal nocursorcolumn +setlocal nocursorline +setlocal cursorlineopt=both +setlocal define= +setlocal dictionary= +setlocal nodiff +setlocal equalprg= +setlocal errorformat=%+A\ %#%f\ %#(%l\\,%c):\ %m,%C%m +setlocal noexpandtab +if &filetype != 'typescriptreact' +setlocal filetype=typescriptreact +endif +setlocal fillchars= +setlocal fixendofline +setlocal foldcolumn=0 +setlocal foldenable +setlocal foldexpr=0 +setlocal foldignore=# +setlocal foldlevel=0 +setlocal foldmarker={{{,}}} +setlocal foldmethod=manual +setlocal foldminlines=1 +setlocal foldnestmax=20 +setlocal foldtext=foldtext() +setlocal formatexpr= +setlocal formatoptions=croql +setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s* +setlocal formatprg= +setlocal grepprg= +setlocal iminsert=0 +setlocal imsearch=-1 +setlocal include= +setlocal includeexpr= +setlocal indentexpr=GetTsxIndent() +setlocal indentkeys=0{,0},0),0],0,,!^F,o,O,e,*,<>>,<<>,/ +setlocal noinfercase +setlocal iskeyword=@,48-57,_,192-255,$ +setlocal keywordprg= +setlocal nolinebreak +setlocal nolisp +setlocal lispoptions= +setlocal lispwords= +setlocal nolist +setlocal listchars= +setlocal makeencoding= +setlocal makeprg=tsc\ \ $*\ % +setlocal matchpairs=(:),{:},[:] +setlocal nomodeline +setlocal modifiable +setlocal nrformats=bin,octal,hex +set number +setlocal number +setlocal numberwidth=4 +setlocal omnifunc= +setlocal path= +setlocal nopreserveindent +setlocal nopreviewwindow +setlocal quoteescape=\\ +setlocal noreadonly +setlocal norelativenumber +setlocal norightleft +setlocal rightleftcmd=search +setlocal noscrollbind +setlocal scrolloff=-1 +setlocal shiftwidth=4 +setlocal noshortname +setlocal showbreak= +setlocal sidescrolloff=-1 +set signcolumn=yes +setlocal signcolumn=yes +setlocal nosmartindent +setlocal nosmoothscroll +setlocal softtabstop=0 +setlocal nospell +setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+ +setlocal spellfile= +setlocal spelllang=en +setlocal spelloptions= +setlocal statusline= +setlocal suffixesadd=.ts,.tsx +setlocal swapfile +setlocal synmaxcol=3000 +if &syntax != 'typescriptreact' +setlocal syntax=typescriptreact +endif +setlocal tabstop=8 +setlocal tagcase= +setlocal tagfunc= +setlocal tags= +setlocal termwinkey= +setlocal termwinscroll=10000 +setlocal termwinsize= +setlocal textwidth=0 +setlocal thesaurus= +setlocal thesaurusfunc= +setlocal noundofile +setlocal undolevels=-123456 +setlocal varsofttabstop= +setlocal vartabstop= +setlocal virtualedit= +setlocal wincolor= +setlocal nowinfixheight +setlocal nowinfixwidth +setlocal wrap +setlocal wrapmargin=0 +silent! normal! zE +let &fdl = &fdl +let s:l = 8 - ((7 * winheight(0) + 18) / 37) +if s:l < 1 | let s:l = 1 | endif +keepjumps exe s:l +normal! zt +keepjumps 8 +normal! 021| +wincmd w +exe 'vert 1resize ' . ((&columns * 31 + 101) / 203) +exe 'vert 2resize ' . ((&columns * 85 + 101) / 203) +exe 'vert 3resize ' . ((&columns * 85 + 101) / 203) +tabnext +edit src/ViewModel/Pages/messagePageViewModel.ts +let s:save_splitbelow = &splitbelow +let s:save_splitright = &splitright +set splitbelow splitright +wincmd _ | wincmd | +vsplit +1wincmd h +wincmd w +let &splitbelow = s:save_splitbelow +let &splitright = s:save_splitright +wincmd t +let s:save_winminheight = &winminheight +let s:save_winminwidth = &winminwidth +set winminheight=0 +set winheight=1 +set winminwidth=0 +set winwidth=1 +exe 'vert 1resize ' . ((&columns * 31 + 101) / 203) +exe 'vert 2resize ' . ((&columns * 171 + 101) / 203) +argglobal +enew +file NERD_tree_tab_2 +balt src/Model/Chat/chatModel.ts +let s:cpo_save=&cpo +set cpo&vim +nnoremap :call nerdtree#ui_glue#invokeKeyMap("") +nnoremap  :call nerdtree#ui_glue#invokeKeyMap("") +nnoremap  :call nerdtree#ui_glue#invokeKeyMap("") +nnoremap ? :call nerdtree#ui_glue#invokeKeyMap("?") +nnoremap A :call nerdtree#ui_glue#invokeKeyMap("A") +nnoremap B :call nerdtree#ui_glue#invokeKeyMap("B") +nnoremap C :call nerdtree#ui_glue#invokeKeyMap("C") +nnoremap CD :call nerdtree#ui_glue#invokeKeyMap("CD") +nnoremap D :call nerdtree#ui_glue#invokeKeyMap("D") +nnoremap FL :call nerdtree#ui_glue#invokeKeyMap("FL") +nnoremap F :call nerdtree#ui_glue#invokeKeyMap("F") +nnoremap I :call nerdtree#ui_glue#invokeKeyMap("I") +nnoremap J :call nerdtree#ui_glue#invokeKeyMap("J") +nnoremap K :call nerdtree#ui_glue#invokeKeyMap("K") +nnoremap O :call nerdtree#ui_glue#invokeKeyMap("O") +nnoremap P :call nerdtree#ui_glue#invokeKeyMap("P") +nnoremap R :call nerdtree#ui_glue#invokeKeyMap("R") +nnoremap T :call nerdtree#ui_glue#invokeKeyMap("T") +nnoremap U :call nerdtree#ui_glue#invokeKeyMap("U") +nnoremap X :call nerdtree#ui_glue#invokeKeyMap("X") +nmap [c (GitGutterPrevHunk) +nmap \hp (GitGutterPreviewHunk) +nmap \hu (GitGutterUndoHunk) +nmap \hs (GitGutterStageHunk) +xmap \hs (GitGutterStageHunk) +nmap ]c (GitGutterNextHunk) +xmap ac (GitGutterTextObjectOuterVisual) +omap ac (GitGutterTextObjectOuterPending) +nnoremap cd :call nerdtree#ui_glue#invokeKeyMap("cd") +nnoremap e :call nerdtree#ui_glue#invokeKeyMap("e") +nnoremap f :call nerdtree#ui_glue#invokeKeyMap("f") +nnoremap go :call nerdtree#ui_glue#invokeKeyMap("go") +nnoremap gb :call nerdtree#ui_glue#invokeKeyMap("gb") +nnoremap gi :call nerdtree#ui_glue#invokeKeyMap("gi") +nnoremap gs :call nerdtree#ui_glue#invokeKeyMap("gs") +nnoremap i :call nerdtree#ui_glue#invokeKeyMap("i") +xmap ic (GitGutterTextObjectInnerVisual) +omap ic (GitGutterTextObjectInnerPending) +nnoremap m :call nerdtree#ui_glue#invokeKeyMap("m") +nnoremap o :call nerdtree#ui_glue#invokeKeyMap("o") +nnoremap p :call nerdtree#ui_glue#invokeKeyMap("p") +nnoremap q :call nerdtree#ui_glue#invokeKeyMap("q") +nnoremap r :call nerdtree#ui_glue#invokeKeyMap("r") +nnoremap s :call nerdtree#ui_glue#invokeKeyMap("s") +nnoremap t :call nerdtree#ui_glue#invokeKeyMap("t") +nnoremap u :call nerdtree#ui_glue#invokeKeyMap("u") +nnoremap x :call nerdtree#ui_glue#invokeKeyMap("x") +nnoremap :call nerdtree#ui_glue#invokeKeyMap("") +nnoremap <2-LeftMouse> :call nerdtree#ui_glue#invokeKeyMap("<2-LeftMouse>") +nnoremap :call nerdtree#ui_glue#invokeKeyMap("") +nnoremap :call nerdtree#ui_glue#invokeKeyMap("") +nnoremap :call nerdtree#ui_glue#invokeKeyMap("") +let &cpo=s:cpo_save +unlet s:cpo_save +setlocal keymap= +setlocal noarabic +setlocal noautoindent +setlocal backupcopy= +setlocal balloonexpr= +setlocal nobinary +setlocal nobreakindent +setlocal breakindentopt= +setlocal bufhidden=hide +setlocal nobuflisted +setlocal buftype=nofile +setlocal nocindent +setlocal cinkeys=0{,0},0),0],:,0#,!^F,o,O,e +setlocal cinoptions= +setlocal cinscopedecls=public,protected,private +setlocal cinwords=if,else,while,do,for,switch +setlocal colorcolumn= +setlocal comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:- +setlocal commentstring=/*%s*/ +setlocal complete=.,w,b,u,t,i +setlocal concealcursor=nvic +setlocal conceallevel=2 +setlocal completefunc= +setlocal nocopyindent +setlocal cryptmethod= +setlocal nocursorbind +setlocal nocursorcolumn +setlocal cursorline +setlocal cursorlineopt=both +setlocal define= +setlocal dictionary= +setlocal nodiff +setlocal equalprg= +setlocal errorformat= +setlocal noexpandtab +if &filetype != 'nerdtree' +setlocal filetype=nerdtree +endif +setlocal fillchars= +setlocal fixendofline +setlocal foldcolumn=0 +setlocal nofoldenable +setlocal foldexpr=0 +setlocal foldignore=# +setlocal foldlevel=0 +setlocal foldmarker={{{,}}} +setlocal foldmethod=manual +setlocal foldminlines=1 +setlocal foldnestmax=20 +setlocal foldtext=foldtext() +setlocal formatexpr= +setlocal formatoptions=tcq +setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s* +setlocal formatprg= +setlocal grepprg= +setlocal iminsert=0 +setlocal imsearch=-1 +setlocal include= +setlocal includeexpr= +setlocal indentexpr= +setlocal indentkeys=0{,0},0),0],:,0#,!^F,o,O,e +setlocal noinfercase +setlocal iskeyword=@,48-57,_,192-255 +setlocal keywordprg= +setlocal nolinebreak +setlocal nolisp +setlocal lispoptions= +setlocal lispwords= +setlocal nolist +setlocal listchars= +setlocal makeencoding= +setlocal makeprg= +setlocal matchpairs=(:),{:},[:] +setlocal nomodeline +setlocal nomodifiable +setlocal nrformats=bin,octal,hex +set number +setlocal nonumber +setlocal numberwidth=4 +setlocal omnifunc= +setlocal path= +setlocal nopreserveindent +setlocal nopreviewwindow +setlocal quoteescape=\\ +setlocal readonly +setlocal norelativenumber +setlocal norightleft +setlocal rightleftcmd=search +setlocal noscrollbind +setlocal scrolloff=-1 +setlocal shiftwidth=4 +setlocal noshortname +setlocal showbreak= +setlocal sidescrolloff=-1 +set signcolumn=yes +setlocal signcolumn=yes +setlocal nosmartindent +setlocal nosmoothscroll +setlocal softtabstop=0 +setlocal nospell +setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+ +setlocal spellfile= +setlocal spelllang=en +setlocal spelloptions= +setlocal statusline=%{exists('b:NERDTree')?b:NERDTree.root.path.str():''} +setlocal suffixesadd= +setlocal noswapfile +setlocal synmaxcol=3000 +if &syntax != 'nerdtree' +setlocal syntax=nerdtree +endif +setlocal tabstop=8 +setlocal tagcase= +setlocal tagfunc= +setlocal tags= +setlocal termwinkey= +setlocal termwinscroll=10000 +setlocal termwinsize= +setlocal textwidth=0 +setlocal thesaurus= +setlocal thesaurusfunc= +setlocal noundofile +setlocal undolevels=-123456 +setlocal varsofttabstop= +setlocal vartabstop= +setlocal virtualedit= +setlocal wincolor= +setlocal nowinfixheight +setlocal winfixwidth +setlocal nowrap +setlocal wrapmargin=0 +wincmd w +argglobal +balt src/Model/Chat/chatModel.ts +let s:cpo_save=&cpo +set cpo&vim +imap :call coc#snippet#jump(0, 0) +imap :call coc#snippet#jump(1, 0) +smap :call coc#snippet#jump(1, 0) +smap  :call coc#snippet#jump(0, 0) +nmap [c (GitGutterPrevHunk) +nmap \hp (GitGutterPreviewHunk) +nmap \hu (GitGutterUndoHunk) +nmap \hs (GitGutterStageHunk) +xmap \hs (GitGutterStageHunk) +nmap ]c (GitGutterNextHunk) +xmap ac (GitGutterTextObjectOuterVisual) +omap ac (GitGutterTextObjectOuterPending) +xmap ic (GitGutterTextObjectInnerVisual) +omap ic (GitGutterTextObjectInnerPending) +smap :call coc#snippet#jump(0, 0) +smap :call coc#snippet#jump(1, 0) +imap :call coc#snippet#jump(1, 0) +imap  :call coc#snippet#jump(0, 0) +let &cpo=s:cpo_save +unlet s:cpo_save +setlocal keymap= +setlocal noarabic +setlocal autoindent +setlocal backupcopy= +setlocal balloonexpr= +setlocal nobinary +setlocal nobreakindent +setlocal breakindentopt= +setlocal bufhidden= +setlocal buflisted +setlocal buftype= +setlocal nocindent +setlocal cinkeys=0{,0},0),0],:,0#,!^F,o,O,e +setlocal cinoptions= +setlocal cinscopedecls=public,protected,private +setlocal cinwords=if,else,while,do,for,switch +setlocal colorcolumn= +setlocal comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:- +setlocal commentstring=//\ %s +setlocal complete=.,w,b,u,t,i +setlocal concealcursor= +setlocal conceallevel=0 +setlocal completefunc= +setlocal nocopyindent +setlocal cryptmethod= +setlocal nocursorbind +setlocal nocursorcolumn +setlocal nocursorline +setlocal cursorlineopt=both +setlocal define= +setlocal dictionary= +setlocal nodiff +setlocal equalprg= +setlocal errorformat=%+A\ %#%f\ %#(%l\\,%c):\ %m,%C%m +setlocal noexpandtab if &filetype != 'typescript' setlocal filetype=typescript endif @@ -537,15 +1068,232 @@ setlocal wrap setlocal wrapmargin=0 silent! normal! zE let &fdl = &fdl -let s:l = 21 - ((18 * winheight(0) + 18) / 37) +let s:l = 20 - ((19 * winheight(0) + 18) / 37) if s:l < 1 | let s:l = 1 | endif keepjumps exe s:l normal! zt -keepjumps 21 -normal! $ +keepjumps 20 +normal! 0156| +wincmd w +exe 'vert 1resize ' . ((&columns * 31 + 101) / 203) +exe 'vert 2resize ' . ((&columns * 171 + 101) / 203) +tabnext +edit src/ViewModel/Global/coreViewModel.ts +let s:save_splitbelow = &splitbelow +let s:save_splitright = &splitright +set splitbelow splitright +wincmd _ | wincmd | +vsplit +wincmd _ | wincmd | +vsplit +2wincmd h +wincmd w +wincmd w +let &splitbelow = s:save_splitbelow +let &splitright = s:save_splitright +wincmd t +let s:save_winminheight = &winminheight +let s:save_winminwidth = &winminwidth +set winminheight=0 +set winheight=1 +set winminwidth=0 +set winwidth=1 +exe 'vert 1resize ' . ((&columns * 31 + 101) / 203) +exe 'vert 2resize ' . ((&columns * 85 + 101) / 203) +exe 'vert 3resize ' . ((&columns * 85 + 101) / 203) +argglobal +enew +file NERD_tree_tab_3 +balt src/View/translations.ts +let s:cpo_save=&cpo +set cpo&vim +nnoremap :call nerdtree#ui_glue#invokeKeyMap("") +nnoremap  :call nerdtree#ui_glue#invokeKeyMap("") +nnoremap  :call nerdtree#ui_glue#invokeKeyMap("") +nnoremap ? :call nerdtree#ui_glue#invokeKeyMap("?") +nnoremap A :call nerdtree#ui_glue#invokeKeyMap("A") +nnoremap B :call nerdtree#ui_glue#invokeKeyMap("B") +nnoremap C :call nerdtree#ui_glue#invokeKeyMap("C") +nnoremap CD :call nerdtree#ui_glue#invokeKeyMap("CD") +nnoremap D :call nerdtree#ui_glue#invokeKeyMap("D") +nnoremap FL :call nerdtree#ui_glue#invokeKeyMap("FL") +nnoremap F :call nerdtree#ui_glue#invokeKeyMap("F") +nnoremap I :call nerdtree#ui_glue#invokeKeyMap("I") +nnoremap J :call nerdtree#ui_glue#invokeKeyMap("J") +nnoremap K :call nerdtree#ui_glue#invokeKeyMap("K") +nnoremap O :call nerdtree#ui_glue#invokeKeyMap("O") +nnoremap P :call nerdtree#ui_glue#invokeKeyMap("P") +nnoremap R :call nerdtree#ui_glue#invokeKeyMap("R") +nnoremap T :call nerdtree#ui_glue#invokeKeyMap("T") +nnoremap U :call nerdtree#ui_glue#invokeKeyMap("U") +nnoremap X :call nerdtree#ui_glue#invokeKeyMap("X") +nmap [c (GitGutterPrevHunk) +nmap \hp (GitGutterPreviewHunk) +nmap \hu (GitGutterUndoHunk) +nmap \hs (GitGutterStageHunk) +xmap \hs (GitGutterStageHunk) +nmap ]c (GitGutterNextHunk) +xmap ac (GitGutterTextObjectOuterVisual) +omap ac (GitGutterTextObjectOuterPending) +nnoremap cd :call nerdtree#ui_glue#invokeKeyMap("cd") +nnoremap e :call nerdtree#ui_glue#invokeKeyMap("e") +nnoremap f :call nerdtree#ui_glue#invokeKeyMap("f") +nnoremap go :call nerdtree#ui_glue#invokeKeyMap("go") +nnoremap gb :call nerdtree#ui_glue#invokeKeyMap("gb") +nnoremap gi :call nerdtree#ui_glue#invokeKeyMap("gi") +nnoremap gs :call nerdtree#ui_glue#invokeKeyMap("gs") +nnoremap i :call nerdtree#ui_glue#invokeKeyMap("i") +xmap ic (GitGutterTextObjectInnerVisual) +omap ic (GitGutterTextObjectInnerPending) +nnoremap m :call nerdtree#ui_glue#invokeKeyMap("m") +nnoremap o :call nerdtree#ui_glue#invokeKeyMap("o") +nnoremap p :call nerdtree#ui_glue#invokeKeyMap("p") +nnoremap q :call nerdtree#ui_glue#invokeKeyMap("q") +nnoremap r :call nerdtree#ui_glue#invokeKeyMap("r") +nnoremap s :call nerdtree#ui_glue#invokeKeyMap("s") +nnoremap t :call nerdtree#ui_glue#invokeKeyMap("t") +nnoremap u :call nerdtree#ui_glue#invokeKeyMap("u") +nnoremap x :call nerdtree#ui_glue#invokeKeyMap("x") +nnoremap :call nerdtree#ui_glue#invokeKeyMap("") +nnoremap <2-LeftMouse> :call nerdtree#ui_glue#invokeKeyMap("<2-LeftMouse>") +nnoremap :call nerdtree#ui_glue#invokeKeyMap("") +nnoremap :call nerdtree#ui_glue#invokeKeyMap("") +nnoremap :call nerdtree#ui_glue#invokeKeyMap("") +let &cpo=s:cpo_save +unlet s:cpo_save +setlocal keymap= +setlocal noarabic +setlocal noautoindent +setlocal backupcopy= +setlocal balloonexpr= +setlocal nobinary +setlocal nobreakindent +setlocal breakindentopt= +setlocal bufhidden=hide +setlocal nobuflisted +setlocal buftype=nofile +setlocal nocindent +setlocal cinkeys=0{,0},0),0],:,0#,!^F,o,O,e +setlocal cinoptions= +setlocal cinscopedecls=public,protected,private +setlocal cinwords=if,else,while,do,for,switch +setlocal colorcolumn= +setlocal comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:- +setlocal commentstring=/*%s*/ +setlocal complete=.,w,b,u,t,i +setlocal concealcursor=nvic +setlocal conceallevel=2 +setlocal completefunc= +setlocal nocopyindent +setlocal cryptmethod= +setlocal nocursorbind +setlocal nocursorcolumn +setlocal cursorline +setlocal cursorlineopt=both +setlocal define= +setlocal dictionary= +setlocal nodiff +setlocal equalprg= +setlocal errorformat= +setlocal noexpandtab +if &filetype != 'nerdtree' +setlocal filetype=nerdtree +endif +setlocal fillchars= +setlocal fixendofline +setlocal foldcolumn=0 +setlocal nofoldenable +setlocal foldexpr=0 +setlocal foldignore=# +setlocal foldlevel=0 +setlocal foldmarker={{{,}}} +setlocal foldmethod=manual +setlocal foldminlines=1 +setlocal foldnestmax=20 +setlocal foldtext=foldtext() +setlocal formatexpr= +setlocal formatoptions=tcq +setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s* +setlocal formatprg= +setlocal grepprg= +setlocal iminsert=0 +setlocal imsearch=-1 +setlocal include= +setlocal includeexpr= +setlocal indentexpr= +setlocal indentkeys=0{,0},0),0],:,0#,!^F,o,O,e +setlocal noinfercase +setlocal iskeyword=@,48-57,_,192-255 +setlocal keywordprg= +setlocal nolinebreak +setlocal nolisp +setlocal lispoptions= +setlocal lispwords= +setlocal nolist +setlocal listchars= +setlocal makeencoding= +setlocal makeprg= +setlocal matchpairs=(:),{:},[:] +setlocal nomodeline +setlocal nomodifiable +setlocal nrformats=bin,octal,hex +set number +setlocal nonumber +setlocal numberwidth=4 +setlocal omnifunc= +setlocal path= +setlocal nopreserveindent +setlocal nopreviewwindow +setlocal quoteescape=\\ +setlocal readonly +setlocal norelativenumber +setlocal norightleft +setlocal rightleftcmd=search +setlocal noscrollbind +setlocal scrolloff=-1 +setlocal shiftwidth=4 +setlocal noshortname +setlocal showbreak= +setlocal sidescrolloff=-1 +set signcolumn=yes +setlocal signcolumn=yes +setlocal nosmartindent +setlocal nosmoothscroll +setlocal softtabstop=0 +setlocal nospell +setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+ +setlocal spellfile= +setlocal spelllang=en +setlocal spelloptions= +setlocal statusline=%{exists('b:NERDTree')?b:NERDTree.root.path.str():''} +setlocal suffixesadd= +setlocal noswapfile +setlocal synmaxcol=3000 +if &syntax != 'nerdtree' +setlocal syntax=nerdtree +endif +setlocal tabstop=8 +setlocal tagcase= +setlocal tagfunc= +setlocal tags= +setlocal termwinkey= +setlocal termwinscroll=10000 +setlocal termwinsize= +setlocal textwidth=0 +setlocal thesaurus= +setlocal thesaurusfunc= +setlocal noundofile +setlocal undolevels=-123456 +setlocal varsofttabstop= +setlocal vartabstop= +setlocal virtualedit= +setlocal wincolor= +setlocal nowinfixheight +setlocal winfixwidth +setlocal nowrap +setlocal wrapmargin=0 wincmd w argglobal -if bufexists(fnamemodify("src/ViewModel/Chat/chatMessageViewModel.ts", ":p")) | buffer src/ViewModel/Chat/chatMessageViewModel.ts | else | edit src/ViewModel/Chat/chatMessageViewModel.ts | endif balt src/ViewModel/Pages/messagePageViewModel.ts let s:cpo_save=&cpo set cpo&vim @@ -694,932 +1442,16 @@ setlocal wrap setlocal wrapmargin=0 silent! normal! zE let &fdl = &fdl -let s:l = 202 - ((23 * winheight(0) + 18) / 37) +let s:l = 7 - ((3 * winheight(0) + 18) / 37) if s:l < 1 | let s:l = 1 | endif keepjumps exe s:l normal! zt -keepjumps 202 -normal! 042| -wincmd w -3wincmd w -exe 'vert 1resize ' . ((&columns * 31 + 91) / 183) -exe 'vert 2resize ' . ((&columns * 75 + 91) / 183) -exe 'vert 3resize ' . ((&columns * 75 + 91) / 183) -tabnext -edit src/View/ChatPages/messagePage.css -let s:save_splitbelow = &splitbelow -let s:save_splitright = &splitright -set splitbelow splitright -wincmd _ | wincmd | -vsplit -wincmd _ | wincmd | -vsplit -2wincmd h -wincmd w -wincmd w -let &splitbelow = s:save_splitbelow -let &splitright = s:save_splitright -wincmd t -let s:save_winminheight = &winminheight -let s:save_winminwidth = &winminwidth -set winminheight=0 -set winheight=1 -set winminwidth=0 -set winwidth=1 -exe 'vert 1resize ' . ((&columns * 31 + 91) / 183) -exe 'vert 2resize ' . ((&columns * 95 + 91) / 183) -exe 'vert 3resize ' . ((&columns * 86 + 91) / 183) -argglobal -enew -file NERD_tree_tab_4 -balt src/View/Components/chatMessage.tsx -let s:cpo_save=&cpo -set cpo&vim -nnoremap :call nerdtree#ui_glue#invokeKeyMap("") -nnoremap  :call nerdtree#ui_glue#invokeKeyMap("") -nnoremap  :call nerdtree#ui_glue#invokeKeyMap("") -nnoremap ? :call nerdtree#ui_glue#invokeKeyMap("?") -nnoremap A :call nerdtree#ui_glue#invokeKeyMap("A") -nnoremap B :call nerdtree#ui_glue#invokeKeyMap("B") -nnoremap C :call nerdtree#ui_glue#invokeKeyMap("C") -nnoremap CD :call nerdtree#ui_glue#invokeKeyMap("CD") -nnoremap D :call nerdtree#ui_glue#invokeKeyMap("D") -nnoremap FL :call nerdtree#ui_glue#invokeKeyMap("FL") -nnoremap F :call nerdtree#ui_glue#invokeKeyMap("F") -nnoremap I :call nerdtree#ui_glue#invokeKeyMap("I") -nnoremap J :call nerdtree#ui_glue#invokeKeyMap("J") -nnoremap K :call nerdtree#ui_glue#invokeKeyMap("K") -nnoremap O :call nerdtree#ui_glue#invokeKeyMap("O") -nnoremap P :call nerdtree#ui_glue#invokeKeyMap("P") -nnoremap R :call nerdtree#ui_glue#invokeKeyMap("R") -nnoremap T :call nerdtree#ui_glue#invokeKeyMap("T") -nnoremap U :call nerdtree#ui_glue#invokeKeyMap("U") -nnoremap X :call nerdtree#ui_glue#invokeKeyMap("X") -nmap [c (GitGutterPrevHunk) -nmap \hp (GitGutterPreviewHunk) -nmap \hu (GitGutterUndoHunk) -nmap \hs (GitGutterStageHunk) -xmap \hs (GitGutterStageHunk) -nmap ]c (GitGutterNextHunk) -xmap ac (GitGutterTextObjectOuterVisual) -omap ac (GitGutterTextObjectOuterPending) -nnoremap cd :call nerdtree#ui_glue#invokeKeyMap("cd") -nnoremap e :call nerdtree#ui_glue#invokeKeyMap("e") -nnoremap f :call nerdtree#ui_glue#invokeKeyMap("f") -nnoremap go :call nerdtree#ui_glue#invokeKeyMap("go") -nnoremap gb :call nerdtree#ui_glue#invokeKeyMap("gb") -nnoremap gi :call nerdtree#ui_glue#invokeKeyMap("gi") -nnoremap gs :call nerdtree#ui_glue#invokeKeyMap("gs") -nnoremap i :call nerdtree#ui_glue#invokeKeyMap("i") -xmap ic (GitGutterTextObjectInnerVisual) -omap ic (GitGutterTextObjectInnerPending) -nnoremap m :call nerdtree#ui_glue#invokeKeyMap("m") -nnoremap o :call nerdtree#ui_glue#invokeKeyMap("o") -nnoremap p :call nerdtree#ui_glue#invokeKeyMap("p") -nnoremap q :call nerdtree#ui_glue#invokeKeyMap("q") -nnoremap r :call nerdtree#ui_glue#invokeKeyMap("r") -nnoremap s :call nerdtree#ui_glue#invokeKeyMap("s") -nnoremap t :call nerdtree#ui_glue#invokeKeyMap("t") -nnoremap u :call nerdtree#ui_glue#invokeKeyMap("u") -nnoremap x :call nerdtree#ui_glue#invokeKeyMap("x") -nnoremap :call nerdtree#ui_glue#invokeKeyMap("") -nnoremap <2-LeftMouse> :call nerdtree#ui_glue#invokeKeyMap("<2-LeftMouse>") -nnoremap :call nerdtree#ui_glue#invokeKeyMap("") -nnoremap :call nerdtree#ui_glue#invokeKeyMap("") -nnoremap :call nerdtree#ui_glue#invokeKeyMap("") -let &cpo=s:cpo_save -unlet s:cpo_save -setlocal keymap= -setlocal noarabic -setlocal noautoindent -setlocal backupcopy= -setlocal balloonexpr= -setlocal nobinary -setlocal nobreakindent -setlocal breakindentopt= -setlocal bufhidden=hide -setlocal nobuflisted -setlocal buftype=nofile -setlocal nocindent -setlocal cinkeys=0{,0},0),0],:,0#,!^F,o,O,e -setlocal cinoptions= -setlocal cinscopedecls=public,protected,private -setlocal cinwords=if,else,while,do,for,switch -setlocal colorcolumn= -setlocal comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:- -setlocal commentstring=/*%s*/ -setlocal complete=.,w,b,u,t,i -setlocal concealcursor=nvic -setlocal conceallevel=2 -setlocal completefunc= -setlocal nocopyindent -setlocal cryptmethod= -setlocal nocursorbind -setlocal nocursorcolumn -setlocal cursorline -setlocal cursorlineopt=both -setlocal define= -setlocal dictionary= -setlocal nodiff -setlocal equalprg= -setlocal errorformat= -setlocal noexpandtab -if &filetype != 'nerdtree' -setlocal filetype=nerdtree -endif -setlocal fillchars= -setlocal fixendofline -setlocal foldcolumn=0 -setlocal nofoldenable -setlocal foldexpr=0 -setlocal foldignore=# -setlocal foldlevel=0 -setlocal foldmarker={{{,}}} -setlocal foldmethod=manual -setlocal foldminlines=1 -setlocal foldnestmax=20 -setlocal foldtext=foldtext() -setlocal formatexpr= -setlocal formatoptions=tcq -setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s* -setlocal formatprg= -setlocal grepprg= -setlocal iminsert=0 -setlocal imsearch=-1 -setlocal include= -setlocal includeexpr= -setlocal indentexpr= -setlocal indentkeys=0{,0},0),0],:,0#,!^F,o,O,e -setlocal noinfercase -setlocal iskeyword=@,48-57,_,192-255 -setlocal keywordprg= -setlocal nolinebreak -setlocal nolisp -setlocal lispoptions= -setlocal lispwords= -setlocal nolist -setlocal listchars= -setlocal makeencoding= -setlocal makeprg= -setlocal matchpairs=(:),{:},[:] -setlocal nomodeline -setlocal nomodifiable -setlocal nrformats=bin,octal,hex -set number -setlocal nonumber -setlocal numberwidth=4 -setlocal omnifunc= -setlocal path= -setlocal nopreserveindent -setlocal nopreviewwindow -setlocal quoteescape=\\ -setlocal readonly -setlocal norelativenumber -setlocal norightleft -setlocal rightleftcmd=search -setlocal noscrollbind -setlocal scrolloff=-1 -setlocal shiftwidth=4 -setlocal noshortname -setlocal showbreak= -setlocal sidescrolloff=-1 -set signcolumn=yes -setlocal signcolumn=yes -setlocal nosmartindent -setlocal nosmoothscroll -setlocal softtabstop=0 -setlocal nospell -setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+ -setlocal spellfile= -setlocal spelllang=en -setlocal spelloptions= -setlocal statusline=%{exists('b:NERDTree')?b:NERDTree.root.path.str():''} -setlocal suffixesadd= -setlocal noswapfile -setlocal synmaxcol=3000 -if &syntax != 'nerdtree' -setlocal syntax=nerdtree -endif -setlocal tabstop=8 -setlocal tagcase= -setlocal tagfunc= -setlocal tags= -setlocal termwinkey= -setlocal termwinscroll=10000 -setlocal termwinsize= -setlocal textwidth=0 -setlocal thesaurus= -setlocal thesaurusfunc= -setlocal noundofile -setlocal undolevels=-123456 -setlocal varsofttabstop= -setlocal vartabstop= -setlocal virtualedit= -setlocal wincolor= -setlocal nowinfixheight -setlocal winfixwidth -setlocal nowrap -setlocal wrapmargin=0 -wincmd w -argglobal -balt src/View/Components/monthGrid.tsx -let s:cpo_save=&cpo -set cpo&vim -nmap [c (GitGutterPrevHunk) -nmap \hp (GitGutterPreviewHunk) -nmap \hu (GitGutterUndoHunk) -nmap \hs (GitGutterStageHunk) -xmap \hs (GitGutterStageHunk) -nmap ]c (GitGutterNextHunk) -xmap ac (GitGutterTextObjectOuterVisual) -omap ac (GitGutterTextObjectOuterPending) -xmap ic (GitGutterTextObjectInnerVisual) -omap ic (GitGutterTextObjectInnerPending) -let &cpo=s:cpo_save -unlet s:cpo_save -setlocal keymap= -setlocal noarabic -setlocal noautoindent -setlocal backupcopy= -setlocal balloonexpr= -setlocal nobinary -setlocal nobreakindent -setlocal breakindentopt= -setlocal bufhidden= -setlocal buflisted -setlocal buftype= -setlocal nocindent -setlocal cinkeys=0{,0},0),0],:,0#,!^F,o,O,e -setlocal cinoptions= -setlocal cinscopedecls=public,protected,private -setlocal cinwords=if,else,while,do,for,switch -setlocal colorcolumn= -setlocal comments=s1:/*,mb:*,ex:*/ -setlocal commentstring=/*%s*/ -setlocal complete=.,w,b,u,t,i -setlocal concealcursor= -setlocal conceallevel=0 -setlocal completefunc= -setlocal nocopyindent -setlocal cryptmethod= -setlocal nocursorbind -setlocal nocursorcolumn -setlocal nocursorline -setlocal cursorlineopt=both -setlocal define= -setlocal dictionary= -setlocal nodiff -setlocal equalprg= -setlocal errorformat= -setlocal noexpandtab -if &filetype != 'css' -setlocal filetype=css -endif -setlocal fillchars= -setlocal fixendofline -setlocal foldcolumn=0 -setlocal foldenable -setlocal foldexpr=0 -setlocal foldignore=# -setlocal foldlevel=0 -setlocal foldmarker={{{,}}} -setlocal foldmethod=manual -setlocal foldminlines=1 -setlocal foldnestmax=20 -setlocal foldtext=foldtext() -setlocal formatexpr= -setlocal formatoptions=croql -setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s* -setlocal formatprg= -setlocal grepprg= -setlocal iminsert=0 -setlocal imsearch=-1 -setlocal include=^\\s*@import\\s\\+\\%(url(\\)\\= -setlocal includeexpr= -setlocal indentexpr=GetCSSIndent() -setlocal indentkeys=0{,0},!^F,o,O -setlocal noinfercase -setlocal iskeyword=@,48-57,_,192-255,- -setlocal keywordprg= -setlocal nolinebreak -setlocal nolisp -setlocal lispoptions= -setlocal lispwords= -setlocal nolist -setlocal listchars= -setlocal makeencoding= -setlocal makeprg= -setlocal matchpairs=(:),{:},[:] -setlocal nomodeline -setlocal modifiable -setlocal nrformats=bin,octal,hex -set number -setlocal number -setlocal numberwidth=4 -setlocal omnifunc=csscomplete#CompleteCSS -setlocal path= -setlocal nopreserveindent -setlocal nopreviewwindow -setlocal quoteescape=\\ -setlocal noreadonly -setlocal norelativenumber -setlocal norightleft -setlocal rightleftcmd=search -setlocal noscrollbind -setlocal scrolloff=-1 -setlocal shiftwidth=4 -setlocal noshortname -setlocal showbreak= -setlocal sidescrolloff=-1 -set signcolumn=yes -setlocal signcolumn=yes -setlocal nosmartindent -setlocal nosmoothscroll -setlocal softtabstop=0 -setlocal nospell -setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+ -setlocal spellfile= -setlocal spelllang=en -setlocal spelloptions= -setlocal statusline= -setlocal suffixesadd= -setlocal swapfile -setlocal synmaxcol=3000 -if &syntax != 'css' -setlocal syntax=css -endif -setlocal tabstop=8 -setlocal tagcase= -setlocal tagfunc= -setlocal tags= -setlocal termwinkey= -setlocal termwinscroll=10000 -setlocal termwinsize= -setlocal textwidth=0 -setlocal thesaurus= -setlocal thesaurusfunc= -setlocal noundofile -setlocal undolevels=-123456 -setlocal varsofttabstop= -setlocal vartabstop= -setlocal virtualedit= -setlocal wincolor= -setlocal nowinfixheight -setlocal nowinfixwidth -setlocal wrap -setlocal wrapmargin=0 -silent! normal! zE -let &fdl = &fdl -let s:l = 22 - ((21 * winheight(0) + 21) / 42) -if s:l < 1 | let s:l = 1 | endif -keepjumps exe s:l -normal! zt -keepjumps 22 +keepjumps 7 normal! $ wincmd w argglobal -if bufexists(fnamemodify("src/View/ChatPages/messagePage.tsx", ":p")) | buffer src/View/ChatPages/messagePage.tsx | else | edit src/View/ChatPages/messagePage.tsx | endif -balt src/View/Components/replyViewHeader.tsx -let s:cpo_save=&cpo -set cpo&vim -imap :call coc#snippet#jump(0, 0) -imap :call coc#snippet#jump(1, 0) -smap :call coc#snippet#jump(1, 0) -smap  :call coc#snippet#jump(0, 0) -nmap [c (GitGutterPrevHunk) -nmap \hp (GitGutterPreviewHunk) -nmap \hu (GitGutterUndoHunk) -nmap \hs (GitGutterStageHunk) -xmap \hs (GitGutterStageHunk) -nmap ]c (GitGutterNextHunk) -xmap ac (GitGutterTextObjectOuterVisual) -omap ac (GitGutterTextObjectOuterPending) -xmap ic (GitGutterTextObjectInnerVisual) -omap ic (GitGutterTextObjectInnerPending) -smap :call coc#snippet#jump(0, 0) -smap :call coc#snippet#jump(1, 0) -imap :call coc#snippet#jump(1, 0) -imap  :call coc#snippet#jump(0, 0) -let &cpo=s:cpo_save -unlet s:cpo_save -setlocal keymap= -setlocal noarabic -setlocal autoindent -setlocal backupcopy= -setlocal balloonexpr= -setlocal nobinary -setlocal nobreakindent -setlocal breakindentopt= -setlocal bufhidden= -setlocal buflisted -setlocal buftype= -setlocal nocindent -setlocal cinkeys=0{,0},0),0],:,0#,!^F,o,O,e -setlocal cinoptions= -setlocal cinscopedecls=public,protected,private -setlocal cinwords=if,else,while,do,for,switch -setlocal colorcolumn= -setlocal comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:- -setlocal commentstring=//\ %s -setlocal complete=.,w,b,u,t,i -setlocal concealcursor= -setlocal conceallevel=0 -setlocal completefunc= -setlocal nocopyindent -setlocal cryptmethod= -setlocal nocursorbind -setlocal nocursorcolumn -setlocal nocursorline -setlocal cursorlineopt=both -setlocal define= -setlocal dictionary= -setlocal nodiff -setlocal equalprg= -setlocal errorformat=%+A\ %#%f\ %#(%l\\,%c):\ %m,%C%m -setlocal noexpandtab -if &filetype != 'typescriptreact' -setlocal filetype=typescriptreact -endif -setlocal fillchars= -setlocal fixendofline -setlocal foldcolumn=0 -setlocal foldenable -setlocal foldexpr=0 -setlocal foldignore=# -setlocal foldlevel=0 -setlocal foldmarker={{{,}}} -setlocal foldmethod=manual -setlocal foldminlines=1 -setlocal foldnestmax=20 -setlocal foldtext=foldtext() -setlocal formatexpr= -setlocal formatoptions=croql -setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s* -setlocal formatprg= -setlocal grepprg= -setlocal iminsert=0 -setlocal imsearch=-1 -setlocal include= -setlocal includeexpr= -setlocal indentexpr=GetTsxIndent() -setlocal indentkeys=0{,0},0),0],0,,!^F,o,O,e,*,<>>,<<>,/ -setlocal noinfercase -setlocal iskeyword=@,48-57,_,192-255,$ -setlocal keywordprg= -setlocal nolinebreak -setlocal nolisp -setlocal lispoptions= -setlocal lispwords= -setlocal nolist -setlocal listchars= -setlocal makeencoding= -setlocal makeprg=tsc\ \ $*\ % -setlocal matchpairs=(:),{:},[:] -setlocal nomodeline -setlocal modifiable -setlocal nrformats=bin,octal,hex -set number -setlocal number -setlocal numberwidth=4 -setlocal omnifunc= -setlocal path= -setlocal nopreserveindent -setlocal nopreviewwindow -setlocal quoteescape=\\ -setlocal noreadonly -setlocal norelativenumber -setlocal norightleft -setlocal rightleftcmd=search -setlocal noscrollbind -setlocal scrolloff=-1 -setlocal shiftwidth=4 -setlocal noshortname -setlocal showbreak= -setlocal sidescrolloff=-1 -set signcolumn=yes -setlocal signcolumn=yes -setlocal nosmartindent -setlocal nosmoothscroll -setlocal softtabstop=0 -setlocal nospell -setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+ -setlocal spellfile= -setlocal spelllang=en -setlocal spelloptions= -setlocal statusline= -setlocal suffixesadd=.ts,.tsx -setlocal swapfile -setlocal synmaxcol=3000 -if &syntax != 'typescriptreact' -setlocal syntax=typescriptreact -endif -setlocal tabstop=8 -setlocal tagcase= -setlocal tagfunc= -setlocal tags= -setlocal termwinkey= -setlocal termwinscroll=10000 -setlocal termwinsize= -setlocal textwidth=0 -setlocal thesaurus= -setlocal thesaurusfunc= -setlocal noundofile -setlocal undolevels=-123456 -setlocal varsofttabstop= -setlocal vartabstop= -setlocal virtualedit= -setlocal wincolor= -setlocal nowinfixheight -setlocal nowinfixwidth -setlocal wrap -setlocal wrapmargin=0 -silent! normal! zE -let &fdl = &fdl -let s:l = 69 - ((26 * winheight(0) + 21) / 42) -if s:l < 1 | let s:l = 1 | endif -keepjumps exe s:l -normal! zt -keepjumps 69 -normal! $ -wincmd w -exe 'vert 1resize ' . ((&columns * 31 + 91) / 183) -exe 'vert 2resize ' . ((&columns * 95 + 91) / 183) -exe 'vert 3resize ' . ((&columns * 86 + 91) / 183) -tabnext -edit src/ViewModel/Global/coreViewModel.ts -let s:save_splitbelow = &splitbelow -let s:save_splitright = &splitright -set splitbelow splitright -wincmd _ | wincmd | -vsplit -wincmd _ | wincmd | -vsplit -2wincmd h -wincmd w -wincmd w -let &splitbelow = s:save_splitbelow -let &splitright = s:save_splitright -wincmd t -let s:save_winminheight = &winminheight -let s:save_winminwidth = &winminwidth -set winminheight=0 -set winheight=1 -set winminwidth=0 -set winwidth=1 -exe 'vert 1resize ' . ((&columns * 31 + 91) / 183) -exe 'vert 2resize ' . ((&columns * 90 + 91) / 183) -exe 'vert 3resize ' . ((&columns * 91 + 91) / 183) -argglobal -enew -file NERD_tree_tab_5 -balt src/View/translations.ts -let s:cpo_save=&cpo -set cpo&vim -nnoremap :call nerdtree#ui_glue#invokeKeyMap("") -nnoremap  :call nerdtree#ui_glue#invokeKeyMap("") -nnoremap  :call nerdtree#ui_glue#invokeKeyMap("") -nnoremap ? :call nerdtree#ui_glue#invokeKeyMap("?") -nnoremap A :call nerdtree#ui_glue#invokeKeyMap("A") -nnoremap B :call nerdtree#ui_glue#invokeKeyMap("B") -nnoremap C :call nerdtree#ui_glue#invokeKeyMap("C") -nnoremap CD :call nerdtree#ui_glue#invokeKeyMap("CD") -nnoremap D :call nerdtree#ui_glue#invokeKeyMap("D") -nnoremap FL :call nerdtree#ui_glue#invokeKeyMap("FL") -nnoremap F :call nerdtree#ui_glue#invokeKeyMap("F") -nnoremap I :call nerdtree#ui_glue#invokeKeyMap("I") -nnoremap J :call nerdtree#ui_glue#invokeKeyMap("J") -nnoremap K :call nerdtree#ui_glue#invokeKeyMap("K") -nnoremap O :call nerdtree#ui_glue#invokeKeyMap("O") -nnoremap P :call nerdtree#ui_glue#invokeKeyMap("P") -nnoremap R :call nerdtree#ui_glue#invokeKeyMap("R") -nnoremap T :call nerdtree#ui_glue#invokeKeyMap("T") -nnoremap U :call nerdtree#ui_glue#invokeKeyMap("U") -nnoremap X :call nerdtree#ui_glue#invokeKeyMap("X") -nmap [c (GitGutterPrevHunk) -nmap \hp (GitGutterPreviewHunk) -nmap \hu (GitGutterUndoHunk) -nmap \hs (GitGutterStageHunk) -xmap \hs (GitGutterStageHunk) -nmap ]c (GitGutterNextHunk) -xmap ac (GitGutterTextObjectOuterVisual) -omap ac (GitGutterTextObjectOuterPending) -nnoremap cd :call nerdtree#ui_glue#invokeKeyMap("cd") -nnoremap e :call nerdtree#ui_glue#invokeKeyMap("e") -nnoremap f :call nerdtree#ui_glue#invokeKeyMap("f") -nnoremap go :call nerdtree#ui_glue#invokeKeyMap("go") -nnoremap gb :call nerdtree#ui_glue#invokeKeyMap("gb") -nnoremap gi :call nerdtree#ui_glue#invokeKeyMap("gi") -nnoremap gs :call nerdtree#ui_glue#invokeKeyMap("gs") -nnoremap i :call nerdtree#ui_glue#invokeKeyMap("i") -xmap ic (GitGutterTextObjectInnerVisual) -omap ic (GitGutterTextObjectInnerPending) -nnoremap m :call nerdtree#ui_glue#invokeKeyMap("m") -nnoremap o :call nerdtree#ui_glue#invokeKeyMap("o") -nnoremap p :call nerdtree#ui_glue#invokeKeyMap("p") -nnoremap q :call nerdtree#ui_glue#invokeKeyMap("q") -nnoremap r :call nerdtree#ui_glue#invokeKeyMap("r") -nnoremap s :call nerdtree#ui_glue#invokeKeyMap("s") -nnoremap t :call nerdtree#ui_glue#invokeKeyMap("t") -nnoremap u :call nerdtree#ui_glue#invokeKeyMap("u") -nnoremap x :call nerdtree#ui_glue#invokeKeyMap("x") -nnoremap :call nerdtree#ui_glue#invokeKeyMap("") -nnoremap <2-LeftMouse> :call nerdtree#ui_glue#invokeKeyMap("<2-LeftMouse>") -nnoremap :call nerdtree#ui_glue#invokeKeyMap("") -nnoremap :call nerdtree#ui_glue#invokeKeyMap("") -nnoremap :call nerdtree#ui_glue#invokeKeyMap("") -let &cpo=s:cpo_save -unlet s:cpo_save -setlocal keymap= -setlocal noarabic -setlocal noautoindent -setlocal backupcopy= -setlocal balloonexpr= -setlocal nobinary -setlocal nobreakindent -setlocal breakindentopt= -setlocal bufhidden=hide -setlocal nobuflisted -setlocal buftype=nofile -setlocal nocindent -setlocal cinkeys=0{,0},0),0],:,0#,!^F,o,O,e -setlocal cinoptions= -setlocal cinscopedecls=public,protected,private -setlocal cinwords=if,else,while,do,for,switch -setlocal colorcolumn= -setlocal comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:- -setlocal commentstring=/*%s*/ -setlocal complete=.,w,b,u,t,i -setlocal concealcursor=nvic -setlocal conceallevel=2 -setlocal completefunc= -setlocal nocopyindent -setlocal cryptmethod= -setlocal nocursorbind -setlocal nocursorcolumn -setlocal cursorline -setlocal cursorlineopt=both -setlocal define= -setlocal dictionary= -setlocal nodiff -setlocal equalprg= -setlocal errorformat= -setlocal noexpandtab -if &filetype != 'nerdtree' -setlocal filetype=nerdtree -endif -setlocal fillchars= -setlocal fixendofline -setlocal foldcolumn=0 -setlocal nofoldenable -setlocal foldexpr=0 -setlocal foldignore=# -setlocal foldlevel=0 -setlocal foldmarker={{{,}}} -setlocal foldmethod=manual -setlocal foldminlines=1 -setlocal foldnestmax=20 -setlocal foldtext=foldtext() -setlocal formatexpr= -setlocal formatoptions=tcq -setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s* -setlocal formatprg= -setlocal grepprg= -setlocal iminsert=0 -setlocal imsearch=-1 -setlocal include= -setlocal includeexpr= -setlocal indentexpr= -setlocal indentkeys=0{,0},0),0],:,0#,!^F,o,O,e -setlocal noinfercase -setlocal iskeyword=@,48-57,_,192-255 -setlocal keywordprg= -setlocal nolinebreak -setlocal nolisp -setlocal lispoptions= -setlocal lispwords= -setlocal nolist -setlocal listchars= -setlocal makeencoding= -setlocal makeprg= -setlocal matchpairs=(:),{:},[:] -setlocal nomodeline -setlocal nomodifiable -setlocal nrformats=bin,octal,hex -set number -setlocal nonumber -setlocal numberwidth=4 -setlocal omnifunc= -setlocal path= -setlocal nopreserveindent -setlocal nopreviewwindow -setlocal quoteescape=\\ -setlocal readonly -setlocal norelativenumber -setlocal norightleft -setlocal rightleftcmd=search -setlocal noscrollbind -setlocal scrolloff=-1 -setlocal shiftwidth=4 -setlocal noshortname -setlocal showbreak= -setlocal sidescrolloff=-1 -set signcolumn=yes -setlocal signcolumn=yes -setlocal nosmartindent -setlocal nosmoothscroll -setlocal softtabstop=0 -setlocal nospell -setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+ -setlocal spellfile= -setlocal spelllang=en -setlocal spelloptions= -setlocal statusline=%{exists('b:NERDTree')?b:NERDTree.root.path.str():''} -setlocal suffixesadd= -setlocal noswapfile -setlocal synmaxcol=3000 -if &syntax != 'nerdtree' -setlocal syntax=nerdtree -endif -setlocal tabstop=8 -setlocal tagcase= -setlocal tagfunc= -setlocal tags= -setlocal termwinkey= -setlocal termwinscroll=10000 -setlocal termwinsize= -setlocal textwidth=0 -setlocal thesaurus= -setlocal thesaurusfunc= -setlocal noundofile -setlocal undolevels=-123456 -setlocal varsofttabstop= -setlocal vartabstop= -setlocal virtualedit= -setlocal wincolor= -setlocal nowinfixheight -setlocal winfixwidth -setlocal nowrap -setlocal wrapmargin=0 -wincmd w -argglobal -balt src/View/translations.ts -let s:cpo_save=&cpo -set cpo&vim -nmap [c (GitGutterPrevHunk) -nmap \hp (GitGutterPreviewHunk) -nmap \hu (GitGutterUndoHunk) -nmap \hs (GitGutterStageHunk) -xmap \hs (GitGutterStageHunk) -nmap ]c (GitGutterNextHunk) -xmap ac (GitGutterTextObjectOuterVisual) -omap ac (GitGutterTextObjectOuterPending) -xmap ic (GitGutterTextObjectInnerVisual) -omap ic (GitGutterTextObjectInnerPending) -let &cpo=s:cpo_save -unlet s:cpo_save -setlocal keymap= -setlocal noarabic -setlocal autoindent -setlocal backupcopy= -setlocal balloonexpr= -setlocal nobinary -setlocal nobreakindent -setlocal breakindentopt= -setlocal bufhidden= -setlocal buflisted -setlocal buftype= -setlocal nocindent -setlocal cinkeys=0{,0},0),0],:,0#,!^F,o,O,e -setlocal cinoptions= -setlocal cinscopedecls=public,protected,private -setlocal cinwords=if,else,while,do,for,switch -setlocal colorcolumn= -setlocal comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:- -setlocal commentstring=//\ %s -setlocal complete=.,w,b,u,t,i -setlocal concealcursor= -setlocal conceallevel=0 -setlocal completefunc= -setlocal nocopyindent -setlocal cryptmethod= -setlocal nocursorbind -setlocal nocursorcolumn -setlocal nocursorline -setlocal cursorlineopt=both -setlocal define= -setlocal dictionary= -setlocal nodiff -setlocal equalprg= -setlocal errorformat=%+A\ %#%f\ %#(%l\\,%c):\ %m,%C%m -setlocal noexpandtab -if &filetype != 'typescript' -setlocal filetype=typescript -endif -setlocal fillchars= -setlocal fixendofline -setlocal foldcolumn=0 -setlocal foldenable -setlocal foldexpr=0 -setlocal foldignore=# -setlocal foldlevel=0 -setlocal foldmarker={{{,}}} -setlocal foldmethod=manual -setlocal foldminlines=1 -setlocal foldnestmax=20 -setlocal foldtext=foldtext() -setlocal formatexpr= -setlocal formatoptions=croql -setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s* -setlocal formatprg= -setlocal grepprg= -setlocal iminsert=0 -setlocal imsearch=-1 -setlocal include= -setlocal includeexpr= -setlocal indentexpr=GetTypescriptIndent() -setlocal indentkeys=0{,0},0),0],:,0#,!^F,o,O,e,0],0) -setlocal noinfercase -setlocal iskeyword=@,48-57,_,192-255,$ -setlocal keywordprg= -setlocal nolinebreak -setlocal nolisp -setlocal lispoptions= -setlocal lispwords= -setlocal nolist -setlocal listchars= -setlocal makeencoding= -setlocal makeprg=tsc\ \ $*\ % -setlocal matchpairs=(:),{:},[:] -setlocal nomodeline -setlocal modifiable -setlocal nrformats=bin,octal,hex -set number -setlocal number -setlocal numberwidth=4 -setlocal omnifunc= -setlocal path= -setlocal nopreserveindent -setlocal nopreviewwindow -setlocal quoteescape=\\ -setlocal noreadonly -setlocal norelativenumber -setlocal norightleft -setlocal rightleftcmd=search -setlocal noscrollbind -setlocal scrolloff=-1 -setlocal shiftwidth=4 -setlocal noshortname -setlocal showbreak= -setlocal sidescrolloff=-1 -set signcolumn=yes -setlocal signcolumn=yes -setlocal nosmartindent -setlocal nosmoothscroll -setlocal softtabstop=0 -setlocal nospell -setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+ -setlocal spellfile= -setlocal spelllang=en -setlocal spelloptions= -setlocal statusline= -setlocal suffixesadd=.ts,.tsx -setlocal swapfile -setlocal synmaxcol=3000 -if &syntax != 'typescript' -setlocal syntax=typescript -endif -setlocal tabstop=8 -setlocal tagcase= -setlocal tagfunc= -setlocal tags= -setlocal termwinkey= -setlocal termwinscroll=10000 -setlocal termwinsize= -setlocal textwidth=0 -setlocal thesaurus= -setlocal thesaurusfunc= -setlocal noundofile -setlocal undolevels=-123456 -setlocal varsofttabstop= -setlocal vartabstop= -setlocal virtualedit= -setlocal wincolor= -setlocal nowinfixheight -setlocal nowinfixwidth -setlocal wrap -setlocal wrapmargin=0 -silent! normal! zE -let &fdl = &fdl -let s:l = 12 - ((4 * winheight(0) + 21) / 42) -if s:l < 1 | let s:l = 1 | endif -keepjumps exe s:l -normal! zt -keepjumps 12 -normal! 038| -wincmd w -argglobal if bufexists(fnamemodify("src/View/translations.ts", ":p")) | buffer src/View/translations.ts | else | edit src/View/translations.ts | endif -balt src/View/Components/replyLink.tsx +balt src/ViewModel/Global/coreViewModel.ts let s:cpo_save=&cpo set cpo&vim nmap [c (GitGutterPrevHunk) @@ -1767,17 +1599,18 @@ setlocal wrap setlocal wrapmargin=0 silent! normal! zE let &fdl = &fdl -let s:l = 879 - ((22 * winheight(0) + 21) / 42) +let s:l = 15 - ((14 * winheight(0) + 18) / 37) if s:l < 1 | let s:l = 1 | endif keepjumps exe s:l normal! zt -keepjumps 879 -normal! 065| +keepjumps 15 +normal! $ wincmd w -exe 'vert 1resize ' . ((&columns * 31 + 91) / 183) -exe 'vert 2resize ' . ((&columns * 90 + 91) / 183) -exe 'vert 3resize ' . ((&columns * 91 + 91) / 183) -tabnext 1 +3wincmd w +exe 'vert 1resize ' . ((&columns * 31 + 101) / 203) +exe 'vert 2resize ' . ((&columns * 85 + 101) / 203) +exe 'vert 3resize ' . ((&columns * 85 + 101) / 203) +tabnext 3 set stal=1 if exists('s:wipebuf') && len(win_findbuf(s:wipebuf)) == 0 silent exe 'bwipe ' . s:wipebuf diff --git a/src/View/ChatPages/messagePage.css b/src/View/ChatPages/messagePage.css index cbcb1ac7..519e878a 100644 --- a/src/View/ChatPages/messagePage.css +++ b/src/View/ChatPages/messagePage.css @@ -1,4 +1,8 @@ /* layout */ +#chat-page #main #message-page[reply-view] .toolbar .title { + padding-left: 0px; +} + #chat-page #main #message-page .content { padding: 0px; overflow: hidden; diff --git a/src/View/ChatPages/messagePage.tsx b/src/View/ChatPages/messagePage.tsx index 3f72ad79..4d727c77 100644 --- a/src/View/ChatPages/messagePage.tsx +++ b/src/View/ChatPages/messagePage.tsx @@ -7,7 +7,6 @@ import * as React from "../../react"; import MessagePageViewModel from "../../ViewModel/Pages/messagePageViewModel"; import CoreViewModel from "../../ViewModel/Global/coreViewModel"; import ChatMessageViewModel from "../../ViewModel/Chat/chatMessageViewModel"; -import {ReplyViewHeader} from "../Components/replyViewHeader"; export function MessagePage( coreViewModel: CoreViewModel, @@ -16,148 +15,155 @@ export function MessagePage( messagePageViewModel.loadData(); const ChatMessageViewModelToView: React.StateItemConverter< - ChatMessageViewModel - > = (chatMessageViewModel: ChatMessageViewModel) => { - return ChatMessage(coreViewModel, chatMessageViewModel); - }; + ChatMessageViewModel +> = (chatMessageViewModel: ChatMessageViewModel) => { + return ChatMessage(coreViewModel, chatMessageViewModel); +}; - const messageContainer = ( -
- ); +const messageContainer = ( +
+); - const persistenceId = messagePageViewModel.chatViewModel.chatModel.id; - const replyPreview = ViewController.inlineReplies.setState( - persistenceId, - () => - React.createProxyState( - [messagePageViewModel.replyingMessage], - () => { - if (messagePageViewModel.replyingMessage.value == undefined) - return
; - return ReplyPreview( - coreViewModel, - messagePageViewModel.replyingMessage.value, - ); - }, - ), - ); +const persistenceId = messagePageViewModel.chatViewModel.chatModel.id; +const replyPreview = ViewController.inlineReplies.setState( + persistenceId, + () => + React.createProxyState( + [messagePageViewModel.replyingMessage], + () => { + if (messagePageViewModel.replyingMessage.value == undefined) + return
; + return ReplyPreview( + coreViewModel, + messagePageViewModel.replyingMessage.value, + ); + }, + ), +); - function scrollDown(hard: boolean = false) { - if (hard) { - messageContainer.setAttribute("scroll-hard", ""); - } - messageContainer.scrollTop = messageContainer.scrollHeight; - messageContainer.removeAttribute("scroll-hard"); +function scrollDown(hard: boolean = false) { + if (hard) { + messageContainer.setAttribute("scroll-hard", ""); } - function scrollDownIfApplicable() { - const scrollFromBottom = - messageContainer.scrollHeight - - (messageContainer.scrollTop + messageContainer.offsetHeight); - if (scrollFromBottom > 400) return; - - scrollDown(); - } - messagePageViewModel.filteredMessageViewModels.subscribeSilent( - scrollDownIfApplicable, - ); - messagePageViewModel.replyViewSelectedMessage.subscribeSilent(selectedMessage => { - if (selectedMessage != undefined) return; - setTimeout(scrollDown, 100); - }) - setTimeout(() => scrollDown(true), 100); - - messagePageViewModel.focusSetter.subscribeSilent(() => { - ViewController.setFocusWithDelay(); - }); - - const isInReplyView = React.createProxyState([messagePageViewModel.replyViewSelectedMessage], ()=>messagePageViewModel.replyViewSelectedMessage.value != undefined); - - return ( -
-
-
-
- - { - coreViewModel.translations.chatPage.message - .messagesHeadline - } - - - - -
-
- {ReplyViewHeader(coreViewModel, messagePageViewModel)} - {messageContainer} -
-
-
-
- - -
-
-
-
-
-
- - {MessageFilterModal( - coreViewModel, - messagePageViewModel, - ChatMessageViewModelToView, - )} -
- ); + messageContainer.scrollTop = messageContainer.scrollHeight; + messageContainer.removeAttribute("scroll-hard"); +} +function scrollDownIfApplicable() { + const scrollFromBottom = + messageContainer.scrollHeight - + (messageContainer.scrollTop + messageContainer.offsetHeight); + if (scrollFromBottom > 400) return; + + scrollDown(); +} +messagePageViewModel.filteredMessageViewModels.subscribeSilent( + scrollDownIfApplicable, +); +messagePageViewModel.replyViewSelectedMessage.subscribeSilent(selectedMessage => { + if (selectedMessage != undefined) return; + setTimeout(scrollDown, 100); +}) +setTimeout(() => scrollDown(true), 100); + +messagePageViewModel.focusSetter.subscribeSilent(() => { + ViewController.setFocusWithDelay(); +}); + +const isInReplyView = React.createProxyState([messagePageViewModel.replyViewSelectedMessage], ()=>messagePageViewModel.replyViewSelectedMessage.value != undefined); + +const title = React.createProxyState([messagePageViewModel.isReplyViewActive], ()=>messagePageViewModel.isReplyViewActive.value ? coreViewModel.translations.chatPage.message.replyHeaderLabel(messagePageViewModel.replyViewSelectedMessage.value.body.value) : coreViewModel.translations.chatPage.message.messagesHeadline); + +return ( +
+
+
+
+ + + + + + +
+
+ {messageContainer} +
+
+
+
+ + +
+
+
+
+
+
+ + {MessageFilterModal( + coreViewModel, + messagePageViewModel, + ChatMessageViewModelToView, + )} +
+); } diff --git a/src/View/translations.ts b/src/View/translations.ts index eafe0442..87ae6c79 100644 --- a/src/View/translations.ts +++ b/src/View/translations.ts @@ -252,7 +252,7 @@ const englishTranslations = { // replyPrefixLabel: "Replies: ", - replyHeaderLabel: (sender: string) => `Replies to ${sender}`, + replyHeaderLabel: (message: string) => `Replies to "${message}"`, }, task: { @@ -576,7 +576,7 @@ export const allTranslations: { questionReaction: "Reaktion: Fragezeichen", replyPrefixLabel: "Antworten: ", - replyHeaderLabel: (sender: string) => `Antworten an ${sender}`, + replyHeaderLabel: (message: string) => `Antworten an "${message}"`, }, task: { @@ -881,7 +881,7 @@ export const allTranslations: { questionReaction: "Reaccion: signo de interrogación", replyPrefixLabel: "Respuestas: ", - replyHeaderLabel: (sender: string) => `Respuestas a ${sender}`, + replyHeaderLabel: (message: string) => `Respuestas a "${message}"`, }, task: { diff --git a/src/ViewModel/Pages/messagePageViewModel.ts b/src/ViewModel/Pages/messagePageViewModel.ts index 945375ec..1850a42e 100644 --- a/src/ViewModel/Pages/messagePageViewModel.ts +++ b/src/ViewModel/Pages/messagePageViewModel.ts @@ -18,6 +18,7 @@ export default class MessagePageViewModel extends Context { new React.ListState(); replyViewSelectedMessage: React.State = new React.State(undefined); isReplyViewActive: React.State = React.createProxyState([this.replyViewSelectedMessage], ()=>this.replyViewSelectedMessage.value != undefined); + isReplyViewInactive = React.createProxyState([this.isReplyViewActive], ()=>!this.isReplyViewActive.value); searchViewModel: SearchViewModel; isFilterModalOpen = new React.State(false); reactionFilter = new React.State(undefined);