JSFiddle - React, Tailwind, and code Playground

JavaScript

var dbParams = [];
var paramsIndex = 1;
var start = true;

var dbQuery = `SELECT
  g.*,
  row_to_json(gi.*) as gallery_information,
  row_to_json(gl.*) as gallery_limit,
  sum(mua_count)
  FROM gallery g 
  LEFT JOIN gallery_information gi ON gi.gallery_id = g.id
  LEFT JOIN gallery_limit gl ON gl.gallery_id = g.id
  LEFT JOIN "user" u ON u.id = g.create_by_user_id
  LEFT JOIN category_gallery cg ON cg.gallery_id = g.id
  LEFT JOIN category c ON c.id = cg.category_id`;

if (request.data.query.sort == 'like') {

}

if (request.data.query.sort == 'visit') {
  // dbQuery += ` 
  //   LEFT JOIN (
  //     SELECT 
  //       id, 
  //       COUNT(*) as mt_count
  //       FROM monitor_traffic
  //       WHERE endpoint_code = 1
  //       GROUP BY id
  //   ) mt ON mt.id = g.id`;

  // sum media traffic

  // dbQuery += ` 
  //   LEFT JOIN gallery_media gm ON gm.gallery_id = g.id
  //   LEFT JOIN (
  //     SELECT 
  //       id, 
  //       COUNT(*) as mt_count
  //       FROM monitor_traffic
  //       WHERE endpoint_code = 2
  //       GROUP BY id
  //   ) mt ON mt.id = gm.media_id`;
}

if (typeof request.data.query.keyword != 'undefined') {
  dbQuery += `
    WHERE gi.name LIKE $` + paramsIndex + `
    OR gi.description LIKE $` + paramsIndex;
  paramsIndex++;
  dbParams.push('%' + request.data.query.keyword + '%');
}

if (typeof request.data.query.status != 'undefined') {
  if (!start) { dbQuery += ' AND'; } else { dbQuery += ' WHERE'; }
  if (start) { start = false; }

  dbQuery += ` g.status = $` + paramsIndex + ` 
    AND u.status = $` + paramsIndex + ` 
    AND c.status = $` + paramsIndex;
  paramsIndex++;
  dbParams.push(request.data.query.status);
}

if (request.data.query.sort == 'like') {

} else if (request.data.query.sort == 'visit') {
  // dbQuery += `
  //   ORDER BY mt.mt_count`;
  dbQuery += `
    ORDER BY g.id`;
} else if (request.data.query.sort == 'name') {
  dbQuery += `
    ORDER BY gi.name`;
} else {
  dbQuery += `
    ORDER BY g.id`;
}

dbQuery...