@@ -2,8 +2,9 @@ import {contrastColor} from '../utils/color.ts';
22import { createSortable } from '../modules/sortable.ts' ;
33import { POST , request } from '../modules/fetch.ts' ;
44import { fomanticQuery } from '../modules/fomantic/base.ts' ;
5- import { queryElemChildren , queryElems } from '../utils/dom.ts' ;
5+ import { queryElemChildren , queryElems , toggleElem } from '../utils/dom.ts' ;
66import type { SortableEvent } from 'sortablejs' ;
7+ import { toggleFullScreen } from '../utils.ts' ;
78
89function updateIssueCount ( card : HTMLElement ) : void {
910 const parent = card . parentElement ;
@@ -34,8 +35,8 @@ async function moveIssue({item, from, to, oldIndex}: SortableEvent): Promise<voi
3435}
3536
3637async function initRepoProjectSortable ( ) : Promise < void > {
37- // the HTML layout is: #project-board > .board > .project-column .cards > .issue-card
38- const mainBoard = document . querySelector ( '#project-board > .board.sortable ' ) ;
38+ // the HTML layout is: #project-board.board > .project-column .cards > .issue-card
39+ const mainBoard = document . querySelector ( '#project-board' ) ;
3940 let boardColumns = mainBoard . querySelectorAll < HTMLElement > ( '.project-column' ) ;
4041 createSortable ( mainBoard , {
4142 group : 'project-column' ,
@@ -139,7 +140,24 @@ function initRepoProjectColumnEdit(writableProjectBoard: Element): void {
139140 } ) ;
140141}
141142
143+ function initRepoProjectToggleFullScreen ( ) : void {
144+ const enterFullscreenBtn = document . querySelector ( '.screen-full' ) ;
145+ const exitFullscreenBtn = document . querySelector ( '.screen-normal' ) ;
146+ if ( ! enterFullscreenBtn || ! exitFullscreenBtn ) return ;
147+
148+ const toggleFullscreenState = ( isFullScreen : boolean ) => {
149+ toggleFullScreen ( '.projects-view' , isFullScreen ) ;
150+ toggleElem ( enterFullscreenBtn , ! isFullScreen ) ;
151+ toggleElem ( exitFullscreenBtn , isFullScreen ) ;
152+ } ;
153+
154+ enterFullscreenBtn . addEventListener ( 'click' , ( ) => toggleFullscreenState ( true ) ) ;
155+ exitFullscreenBtn . addEventListener ( 'click' , ( ) => toggleFullscreenState ( false ) ) ;
156+ }
157+
142158export function initRepoProject ( ) : void {
159+ initRepoProjectToggleFullScreen ( ) ;
160+
143161 const writableProjectBoard = document . querySelector ( '#project-board[data-project-borad-writable="true"]' ) ;
144162 if ( ! writableProjectBoard ) return ;
145163
0 commit comments