From c0e6d63b64a5c5898a3dc49729ce6c37512d40a2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Isabella=20Sko=C5=99epov=C3=A1?= <isabella@skorepova.info>
Date: Sun, 26 Jan 2020 15:00:44 +0100
Subject: [PATCH] JSX everywhere

---
 .babelrc.js                         | 13 ++++++++++++-
 package-lock.json                   | 16 ++++++++++++++++
 package.json                        |  1 +
 theme-source/partials/base-body.tsx | 11 +++++++++--
 theme-source/render-to-string.tsx   |  1 +
 5 files changed, 39 insertions(+), 3 deletions(-)

diff --git a/.babelrc.js b/.babelrc.js
index 189fb255..af2bc463 100644
--- a/.babelrc.js
+++ b/.babelrc.js
@@ -2,6 +2,17 @@ module.exports = {
   presets: [
     '@babel/preset-env',
     '@babel/preset-typescript',
-    '@babel/preset-react',
+    ['@babel/preset-react', { pragma: 'jsx' }],
+  ],
+  plugins: [
+    [
+      'auto-import',
+      {
+        declarations: [
+          { default: 'React', path: 'react' },
+          { members: ['jsx'], path: '@emotion/react' },
+        ],
+      },
+    ],
   ],
 }
diff --git a/package-lock.json b/package-lock.json
index 7a5243d2..194b0e50 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2790,6 +2790,16 @@
         "resolve": "^1.12.0"
       }
     },
+    "babel-plugin-auto-import": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/babel-plugin-auto-import/-/babel-plugin-auto-import-1.0.5.tgz",
+      "integrity": "sha512-U/TmCczhGEU9l65yKVdKMGP0bNlWUpulFaaRMcNaVwCRSgjfnASdwZUVrHdKbVW1EV02iR0JtO6J96aTHB9NXw==",
+      "dev": true,
+      "requires": {
+        "@babel/core": "^7.2.2",
+        "logical-not": "^1.0.0"
+      }
+    },
     "babel-plugin-dynamic-import-node": {
       "version": "2.3.0",
       "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz",
@@ -6580,6 +6590,12 @@
         }
       }
     },
+    "logical-not": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/logical-not/-/logical-not-1.0.0.tgz",
+      "integrity": "sha512-l3X5Sf25wwZkprKfrfJ2YjCcxkNnitMvuqoVPAFNz1xpAMG7B4CkdELK19hafcR8K9fcUs0K0LkzZ62U+xdHpA==",
+      "dev": true
+    },
     "lolex": {
       "version": "4.2.0",
       "resolved": "https://registry.npmjs.org/lolex/-/lolex-4.2.0.tgz",
diff --git a/package.json b/package.json
index c52892a8..7bfbe330 100644
--- a/package.json
+++ b/package.json
@@ -45,6 +45,7 @@
     "@types/react": "^16.9.17",
     "@types/react-dom": "^16.9.4",
     "babel-eslint": "^10.0.3",
+    "babel-plugin-auto-import": "^1.0.5",
     "eslint": "^6.6.0",
     "eslint-config-airbnb-base": "^14.0.0",
     "eslint-config-prettier": "^6.5.0",
diff --git a/theme-source/partials/base-body.tsx b/theme-source/partials/base-body.tsx
index 008c8133..bde12f95 100644
--- a/theme-source/partials/base-body.tsx
+++ b/theme-source/partials/base-body.tsx
@@ -1,7 +1,14 @@
 import React, { PropsWithChildren } from 'react'
 import { SymbolSearch, SymbolMenu, SymbolFacebook } from './svgs'
 import { Search } from './search'
-import { Html } from './html'
+import { css } from '@emotion/react'
+
+const hideOnSmallAndUp = css`
+  display: none;
+  @media (max-width: 300px) {
+    display: block;
+  }
+`
 
 export function BaseBody({
   config,
@@ -25,7 +32,7 @@ export function BaseBody({
           </a>
           <div style={{ zIndex: 2 }} className="brand-logo">
             <a id="logo-container" href="/tag/vse/1/">
-              <img className="hide-on-small-and-up" src="/theme/icon56.png" />
+              <img css={hideOnSmallAndUp} src="/theme/icon56.png" />
               <img
                 className="hide-on-med-and-up hide-on-ultra-small"
                 src="/theme/logo56.png"
diff --git a/theme-source/render-to-string.tsx b/theme-source/render-to-string.tsx
index d0af140c..fd307020 100644
--- a/theme-source/render-to-string.tsx
+++ b/theme-source/render-to-string.tsx
@@ -1,3 +1,4 @@
+/** @jsx React.createElement */
 import React from 'react'
 import ReactDOM from 'react-dom/server'
 import { CacheProvider } from '@emotion/react'
-- 
GitLab