aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/ProjectsList
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/ProjectsList')
-rw-r--r--src/components/ProjectsList/ProjectsList.module.scss25
-rw-r--r--src/components/ProjectsList/ProjectsList.tsx21
2 files changed, 46 insertions, 0 deletions
diff --git a/src/components/ProjectsList/ProjectsList.module.scss b/src/components/ProjectsList/ProjectsList.module.scss
new file mode 100644
index 0000000..6a77aa9
--- /dev/null
+++ b/src/components/ProjectsList/ProjectsList.module.scss
@@ -0,0 +1,25 @@
+@use "@styles/abstracts/functions" as fun;
+@use "@styles/abstracts/placeholders";
+
+.list {
+ --items: 4;
+ --items-size: 35ch;
+
+ @extend %reset-list;
+
+ display: grid;
+ grid-template-columns: repeat(
+ auto-fit,
+ min(calc(100vw - (var(--spacing-md) * 2)), var(--items-size))
+ );
+ gap: var(--spacing-sm);
+ place-content: center;
+ width: min(
+ calc(100vw - (var(--spacing-md) * 2)),
+ calc(
+ (var(--items-size) * var(--items)) +
+ (var(--spacing-sm) * (var(--items) - 1))
+ )
+ );
+ margin: var(--spacing-sm) auto 0;
+}
diff --git a/src/components/ProjectsList/ProjectsList.tsx b/src/components/ProjectsList/ProjectsList.tsx
new file mode 100644
index 0000000..609d824
--- /dev/null
+++ b/src/components/ProjectsList/ProjectsList.tsx
@@ -0,0 +1,21 @@
+import ProjectPreview from '@components/ProjectPreview/ProjectPreview';
+import { Project } from '@ts/types/app';
+import styles from './ProjectsList.module.scss';
+
+const ProjectsList = ({ projects }: { projects: Project[] }) => {
+ const getProjectItems = () => {
+ return projects.map((project) => {
+ return project.meta.title ? (
+ <li className={styles.item} key={project.id}>
+ <ProjectPreview project={project} />
+ </li>
+ ) : (
+ ''
+ );
+ });
+ };
+
+ return <ul className={styles.list}>{getProjectItems()}</ul>;
+};
+
+export default ProjectsList;