@@ -2,8 +2,9 @@ import {contrastColor} from '../utils/color.ts';
2
2
import { createSortable } from '../modules/sortable.ts' ;
3
3
import { POST , request } from '../modules/fetch.ts' ;
4
4
import { fomanticQuery } from '../modules/fomantic/base.ts' ;
5
- import { queryElemChildren , queryElems } from '../utils/dom.ts' ;
5
+ import { queryElemChildren , queryElems , toggleElem } from '../utils/dom.ts' ;
6
6
import type { SortableEvent } from 'sortablejs' ;
7
+ import { toggleFullScreen } from '../utils.ts' ;
7
8
8
9
function updateIssueCount ( card : HTMLElement ) : void {
9
10
const parent = card . parentElement ;
@@ -34,8 +35,8 @@ async function moveIssue({item, from, to, oldIndex}: SortableEvent): Promise<voi
34
35
}
35
36
36
37
async 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' ) ;
39
40
let boardColumns = mainBoard . querySelectorAll < HTMLElement > ( '.project-column' ) ;
40
41
createSortable ( mainBoard , {
41
42
group : 'project-column' ,
@@ -139,7 +140,24 @@ function initRepoProjectColumnEdit(writableProjectBoard: Element): void {
139
140
} ) ;
140
141
}
141
142
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
+
142
158
export function initRepoProject ( ) : void {
159
+ initRepoProjectToggleFullScreen ( ) ;
160
+
143
161
const writableProjectBoard = document . querySelector ( '#project-board[data-project-borad-writable="true"]' ) ;
144
162
if ( ! writableProjectBoard ) return ;
145
163
0 commit comments