diff --git a/web/src/cities/Cities.tsx b/web/src/cities/Cities.tsx
index 09d3eec..055dc07 100644
--- a/web/src/cities/Cities.tsx
+++ b/web/src/cities/Cities.tsx
@@ -1,6 +1,5 @@
import moment from "moment";
import { createSignal } from "solid-js";
-import { QueryResult } from "./result/QueryResult";
import { SelectCity } from "../components/SelectCity";
import { SelectTimeRange } from "../components/SelectTimeRange";
@@ -8,6 +7,7 @@ import { SelectField } from "../components/SelectField";
import { SelectGranularity } from "./SelectGranularity";
import { SelectKey } from "./SelectKey";
+import { QueryView } from "./result/QueryView";
const nowRounded = new Date(new Date().setMinutes(30));
const dayAgo = moment(nowRounded).subtract(1, "days").subtract(30, "minutes").toDate();
@@ -45,7 +45,7 @@ export function Cities() {
-
= ({ city, query, result }) => {
+export const GridResult: Component<{ city: string, query: DataQuery, result: any }> = ({ city, query, result }) => {
return (
-
+
{ city }
{
isDateNumber(result)
?
city} data={()=>result} query={()=>query}/>
- : result
+ : { result }
}
);
diff --git a/web/src/cities/result/QueryResult.tsx b/web/src/cities/result/QueryView.tsx
similarity index 93%
rename from web/src/cities/result/QueryResult.tsx
rename to web/src/cities/result/QueryView.tsx
index e3c842e..46c827e 100644
--- a/web/src/cities/result/QueryResult.tsx
+++ b/web/src/cities/result/QueryView.tsx
@@ -4,10 +4,10 @@ import { Accessor, Component, createResource, createSignal } from "solid-js";
import "../../css/Result.css"
import { FETCH_DELAY_MS, apiHost } from "../../consts";
import { isQueryResult } from "../helpers";
-import { Result } from "./Result";
import { LoadingSpinner } from "../../components/LoadingSpinner";
+import { ResultView } from "./ResultView";
-export const QueryResult: Component<{
+export const QueryView: Component<{
getCities: Accessor
>,
getStart: Accessor,
getEnd: Accessor,
@@ -46,7 +46,7 @@ export const QueryResult: Component<{
{ queryResource().message }
}
{ queryResource() && isQueryResult( queryResource() ) &&
-
+
}
);
diff --git a/web/src/cities/result/Result.tsx b/web/src/cities/result/ResultView.tsx
similarity index 58%
rename from web/src/cities/result/Result.tsx
rename to web/src/cities/result/ResultView.tsx
index 72cd2df..196368c 100644
--- a/web/src/cities/result/Result.tsx
+++ b/web/src/cities/result/ResultView.tsx
@@ -3,16 +3,16 @@ import { Component, createSignal, Resource, Show } from "solid-js";
import "../../css/Result.css"
import { ResultKeyVal, resultOrder, ResultOrderKeys } from "../../consts";
import { SelectOrder } from "../SelectOrder";
-import { CityResult } from "./CityResult";
import { QueryResult } from "../helpers";
import { MapView } from "../map/MapView";
+import { GridResult } from "./GridResult";
-export const Result: Component<{
+export const ResultView: Component<{
result: Resource
}> = ({ result: resultResource }) => {
const [getOrderKey, setOrderKey] = createSignal("A -> Z");
- type ResultView = "text" | "map_1920x1080" | "map_3840x1440";
- const [getResultView, setResultView] = createSignal("text");
+ type ResultView = "grid" | "list" | "map_1920x1080" | "map_3840x1440";
+ const [getResultView, setResultView] = createSignal("grid");
const cityData = () =>
Object.entries(resultResource()!.result)
@@ -24,11 +24,18 @@ export const Result: Component<{
Result:
+ setResultView("grid")}
+ />
+ |
setResultView("text")}
+ value="list"
+ onClick={() => setResultView("list")}
/>
|
setResultView("map_3840x1440")}
/>
-
+
-
-
- {cityData().map(([city, data]) =>
- )}
+
+
+
+ {cityData().map(([city, data]) =>
+ )}
+
+
+
+
+ {cityData().map(([city, data]) =>
+ )}
+
diff --git a/web/src/css/Result.css b/web/src/css/Result.css
index da1e468..655cdd7 100644
--- a/web/src/css/Result.css
+++ b/web/src/css/Result.css
@@ -1,15 +1,3 @@
-.result-container {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- grid-gap: 10px;
-}
-
-.result-item {
- background-color: #f2f2f2;
- padding: 10px;
- text-align: center;
-}
-
.resultTitle {
display: flex;
align-items: center;
@@ -19,4 +7,33 @@
.resultTitle h3 {
margin: 0;
-}
\ No newline at end of file
+}
+
+.grid-view {
+ display: grid;
+ grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
+ grid-gap: 10px;
+}
+
+.grid-view .item {
+ background-color: #f2f2f2;
+ padding: 10px;
+ text-align: center;
+}
+
+.list-view {
+ display: flex;
+ flex-direction: column;
+ grid-gap: 10px;
+}
+
+.list-view .item {
+ background-color: #f2f2f2;
+ padding: 10px;
+ max-width: 300px;
+}
+
+.list-view .item h4 {
+ float: right;
+ display: block;
+}