Skip to content

Commit c8f4529

Browse files
committed
refactor + framermotion
1 parent c0f887b commit c8f4529

21 files changed

Lines changed: 376 additions & 251 deletions

File tree

.github/workflows/deploy.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: Deploy to GitHub Pages
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
deploy:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/checkout@v4
16+
17+
- uses: actions/setup-node@v4
18+
with:
19+
node-version: 20
20+
21+
- run: npm ci
22+
- run: npm run build
23+
24+
- uses: JamesIves/github-pages-deploy-action@v4
25+
with:
26+
branch: gh-pages
27+
folder: dist
28+
github-token: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/prettier.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: Prettier
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
- develop
8+
pull_request:
9+
branches:
10+
- main
11+
- develop
12+
13+
jobs:
14+
prettier:
15+
runs-on: ubuntu-latest
16+
17+
steps:
18+
- name: Checkout code
19+
uses: actions/checkout@v4
20+
21+
- name: Setup Node.js
22+
uses: actions/setup-node@v4
23+
with:
24+
node-version: "20"
25+
26+
- name: Install dependencies
27+
run: npm install
28+
29+
- name: Run Prettier
30+
run: npx prettier --check .

package-lock.json

Lines changed: 43 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
},
1212
"dependencies": {
1313
"@tailwindcss/vite": "^4.1.12",
14+
"framer-motion": "^12.23.19",
1415
"gl-matrix": "^3.4.4",
1516
"mc-react-ptable-materials-grid": "^0.8.6",
1617
"mc-react-structure-visualizer": "^0.7.3",

src/components/OptimadeFAQs/index.jsx renamed to src/components/OptimadeClient/OptimadeFAQs.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { useState, useRef, useEffect } from "react";
22

3-
export function OptimadeFAQs() {
3+
export default function OptimadeFAQs() {
44
const [isOpen, setIsOpen] = useState(false);
55
const contentRef = useRef(null);
66
const [height, setHeight] = useState("0px");

src/components/OptimadeFilters/OptimadePTable/elements.js renamed to src/components/OptimadeClient/OptimadeFilters/OptimadePTable/elements.js

File renamed without changes.

src/components/OptimadeFilters/OptimadePTable/index.jsx renamed to src/components/OptimadeClient/OptimadeFilters/OptimadePTable/index.jsx

File renamed without changes.

src/components/OptimadeFilters/OptimadeRawQuery/buildQueryString.js renamed to src/components/OptimadeClient/OptimadeFilters/OptimadeRawQuery/buildQueryString.js

File renamed without changes.

src/components/OptimadeFilters/OptimadeRawQuery/index.jsx renamed to src/components/OptimadeClient/OptimadeFilters/OptimadeRawQuery/index.jsx

File renamed without changes.

src/components/OptimadeFilters/index.jsx renamed to src/components/OptimadeClient/OptimadeFilters/index.jsx

Lines changed: 32 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
import { useState, useEffect } from "react";
22
import PTable from "./OptimadePTable";
33
import { QueryTextBox } from "./OptimadeRawQuery";
4-
import RangeSlider from "../common/RangeSlider";
4+
import RangeSlider from "../../common/RangeSlider";
55
import { buildQueryString } from "./OptimadeRawQuery/buildQueryString";
66

7-
export function OptimadeFilters({ providerUrl, onResults, onFilterChange }) {
7+
export default function OptimadeFilters({
8+
providerUrl,
9+
onResults,
10+
onFilterChange,
11+
}) {
812
const [numAtomsRange, setNumAtomsRange] = useState([1, 118]);
913
const [numSitesRange, setNumSitesRange] = useState([1, 1000]);
1014
const [selectedElements, setSelectedElements] = useState({});
@@ -65,6 +69,32 @@ export function OptimadeFilters({ providerUrl, onResults, onFilterChange }) {
6569

6670
return (
6771
<div className="space-y-2">
72+
{/* Guided filters */}
73+
<div className={manualMode ? "opacity-50 pointer-events-none" : ""}>
74+
<PTable
75+
selected={selectedElements}
76+
onSelectionChange={(el) =>
77+
setSelectedElements((prev) => ({ ...prev, ...el }))
78+
}
79+
/>
80+
81+
<RangeSlider
82+
title="Number of atoms"
83+
value={numAtomsRange}
84+
onChange={setNumAtomsRange}
85+
min={1}
86+
max={118}
87+
/>
88+
89+
<RangeSlider
90+
title="Number of sites"
91+
value={numSitesRange}
92+
onChange={setNumSitesRange}
93+
min={0}
94+
max={1000}
95+
/>
96+
</div>
97+
6898
{/* Unlock query checkbox */}
6999
<div className="flex items-center space-x-2">
70100
<input
@@ -92,32 +122,6 @@ export function OptimadeFilters({ providerUrl, onResults, onFilterChange }) {
92122
placeholder="Enter OPTIMADE filter…"
93123
/>
94124
</div>
95-
96-
{/* Guided filters */}
97-
<div className={manualMode ? "opacity-50 pointer-events-none" : ""}>
98-
<PTable
99-
selected={selectedElements}
100-
onSelectionChange={(el) =>
101-
setSelectedElements((prev) => ({ ...prev, ...el }))
102-
}
103-
/>
104-
105-
<RangeSlider
106-
title="Number of atoms"
107-
value={numAtomsRange}
108-
onChange={setNumAtomsRange}
109-
min={1}
110-
max={118}
111-
/>
112-
113-
<RangeSlider
114-
title="Number of sites"
115-
value={numSitesRange}
116-
onChange={setNumSitesRange}
117-
min={0}
118-
max={1000}
119-
/>
120-
</div>
121125
</div>
122126
);
123127
}

0 commit comments

Comments
 (0)