From: Ian Jackson Date: Tue, 7 Jul 2020 23:49:53 +0000 (+0100) Subject: tidy js a bit X-Git-Tag: otter-0.2.0~1407 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=78d2754d0c31af799e092057f23a4d69ff7245f5;p=otter.git tidy js a bit --- diff --git a/templates/script.ts b/templates/script.ts index b4fbaa23..e61ec88c 100644 --- a/templates/script.ts +++ b/templates/script.ts @@ -128,6 +128,12 @@ function api_piece(f: (meth: string, payload: Object) => void, }) } +function piece_element(base: string, piece: PieceId): SVGGraphicsElement | null +{ + let elem = document.getElementById(base+piece); + return elem as unknown as (SVGGraphicsElement | null); +} + // ----- clicking/dragging pieces ----- const DRAGGING = { // bitmask @@ -246,19 +252,14 @@ messages.Log = function add_log_message(j.html); } -//interface Message_Log_Payload { html: string }; -//messages.Log = function(j: Message_Log_Payload) { -// add_log_message(j.html); -//} - function add_log_message(msg_html: string) { var lastent = logdiv.lastElementChild; var in_scrollback = + lastent == null || // inspired by // https://stackoverflow.com/questions/487073/how-to-check-if-element-is-visible-after-scrolling/21627295#21627295 // rejected // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API - lastent == null || lastent.getBoundingClientRect()!.bottom > logdiv.getBoundingClientRect()!.bottom; @@ -287,8 +288,8 @@ messages.Piece = function pieceops.Modify = function (piece: PieceId, info: { svg: string, held: PlayerId, pos: Pos }) { console.log('PIECE UPDATE MODIFY ',piece,info) - var uelem = document.getElementById('use'+piece) as unknown as SVGGraphicsElement; - var delem = document.getElementById('defs'+piece) as unknown as SVGGraphicsElement; + var uelem = piece_element('use',piece)!; + var delem = piece_element('defs',piece)!; delem.innerHTML = info.svg; uelem.setAttributeNS(null, "x", info.pos[0]+""); uelem.setAttributeNS(null, "y", info.pos[1]+""); @@ -303,7 +304,7 @@ pieceops.Modify = function pieceops.Move = function (piece, info: Pos ) { - var uelem = document.getElementById('use'+piece)! as unknown as SVGGraphicsElement; + var uelem = piece_element('use',piece)!; uelem_checkconflict(piece, uelem); uelem.setAttributeNS(null, "x", info[0]+""); uelem.setAttributeNS(null, "y", info[1]+"");