diff --git a/share/myip.wtf/myip.wtf.png b/share/myip.wtf/myip.wtf.png index ecc8252..3dcaea2 100644 Binary files a/share/myip.wtf/myip.wtf.png and b/share/myip.wtf/myip.wtf.png differ diff --git a/src/js/components/App.tsx b/src/js/components/App.tsx index e90e15a..f59875f 100644 --- a/src/js/components/App.tsx +++ b/src/js/components/App.tsx @@ -1,6 +1,7 @@ import React from "react"; import { ErrorRenderer } from "~/components/ErrorRenderer"; import { ResponseRenderer } from "~/components/ResponseRenderer"; +import { Loader } from "~/components/Loader"; import { useWebService } from "~/hooks/useWebService"; export function App() { @@ -11,11 +12,6 @@ export function App() { } else if (error) { return ; } else { - return ( -
-
-
{t("loading")}
-
- ); + return ; } } diff --git a/src/js/components/ErrorRenderer.tsx b/src/js/components/ErrorRenderer.tsx index 6f2de60..eed262b 100644 --- a/src/js/components/ErrorRenderer.tsx +++ b/src/js/components/ErrorRenderer.tsx @@ -1,13 +1,14 @@ import React from "react"; +import { Footer } from "~/components/Footer"; export function ErrorRenderer({ error }: { error: Error }) { const t = chrome.i18n.getMessage; return (
-
+
{t("error")}: {error.message} -
+
); } diff --git a/src/js/components/Footer.tsx b/src/js/components/Footer.tsx new file mode 100644 index 0000000..9c2bde0 --- /dev/null +++ b/src/js/components/Footer.tsx @@ -0,0 +1,9 @@ +import React, { ReactNode } from "react"; + +export function Footer({ children }: { children: ReactNode }) { + return ( +
+
{children}
+
+ ); +} diff --git a/src/js/components/Loader.tsx b/src/js/components/Loader.tsx new file mode 100644 index 0000000..3157293 --- /dev/null +++ b/src/js/components/Loader.tsx @@ -0,0 +1,12 @@ +import React, { ReactNode } from "react"; +import { Footer } from "~/components/Footer"; + +export function Loader() { + const t = chrome.i18n.getMessage; + return ( +
+
+
{t("loading")}
+
+ ); +} diff --git a/src/js/components/ResponseRenderer.tsx b/src/js/components/ResponseRenderer.tsx index c7e74db..084a794 100644 --- a/src/js/components/ResponseRenderer.tsx +++ b/src/js/components/ResponseRenderer.tsx @@ -1,5 +1,6 @@ import React, { useEffect, ReactNode } from "react"; import { TResponse } from "~/lib/response"; +import { Footer } from "~/components/Footer"; type TFunction = typeof chrome.i18n.getMessage; export function ResponseRenderer({ response }: { response: TResponse }) { @@ -28,11 +29,11 @@ export function ResponseRenderer({ response }: { response: TResponse }) { } /> - ); }