Skip to content

Commit

Permalink
Merge pull request #131 from kookmin-sw/web-main
Browse files Browse the repository at this point in the history
Web main
  • Loading branch information
sirldev authored May 22, 2024
2 parents 37b1e3d + 7a10d6c commit cf570c8
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 11 deletions.
9 changes: 8 additions & 1 deletion frontend/app/hub/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,17 @@ import TemplateHub from '@/components/TemplateHub';
import axios from 'axios';

async function getTemplates() {
const { data } = await axios.get(
// const { data } = await axios.get(
// `${process.env.NEXT_PUBLIC_API_BASE_URL}/templates`,
// );

const result = await fetch(
`${process.env.NEXT_PUBLIC_API_BASE_URL}/templates`,
{ cache: 'no-store' },
);

const data = await result.json();

return data;
}

Expand Down
45 changes: 40 additions & 5 deletions frontend/components/TemplateHub/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -36,18 +36,21 @@ export default function TemplateHub({ templates }: IHub) {
const [searchResults, setSearchResults] = useState<string[]>([]);
const [filteredTemplates, setFilteredTemplates] = useState<any[]>([]);

const [filterArray, setFilterArray] = useState<string[]>([]);

useEffect(() => {
filterTemplates();
}, [searchResults || []]);

const filterTemplates = () => {
const results = templates.filter(template =>
searchResults.every(tag => template.hashtag && template.hashtag.includes(tag))
const results = templates.filter((template) =>
searchResults.every(
(tag) => template.hashtag && template.hashtag.includes(tag),
),
);
setFilteredTemplates(results);
};


const handleIconClick = () => {
if (value.length > 0) {
setShowResults(true);
Expand Down Expand Up @@ -82,7 +85,10 @@ export default function TemplateHub({ templates }: IHub) {
const handleTagInput = (tags: string[]) => {
// 입력된 태그들을 필터링하여 allItems 배열에 있는 태그만 남김
const validTags = tags.filter((tag) => allItems.includes(tag));
console.log(tags);
setValue(validTags);

setFilterArray(validTags);
};

const resourceColors: { [key: string]: string } = {};
Expand All @@ -94,6 +100,8 @@ export default function TemplateHub({ templates }: IHub) {
});
});

console.log(templates);

return (
<div className={classes.wrapper}>
<Container size="xl" className={classes.inner}>
Expand All @@ -112,7 +120,34 @@ export default function TemplateHub({ templates }: IHub) {
/>
</Container>
<Container mt={80} size={'xl'}>
{showResults ? (
{filterArray.length > 0 && (
<div className={classes.badges}>
{filterArray.map((item: string, index: any) => {
return (
<Badge
key={index}
variant="light"
color={resourceColors[item]}
>
{item}
</Badge>
);
})}
<Text>검색 결과</Text>
</div>
)}

<HubItems
templates={
filterArray.length > 0
? templates.filter((template) =>
filterArray.every((tag) => template.hashtag.includes(tag)),
)
: templates
}
/>

{/* {showResults ? (
<>
<div className={classes.badges}>
{searchResults.map((item: string, index: any) => {
Expand All @@ -136,7 +171,7 @@ export default function TemplateHub({ templates }: IHub) {
<Text>​</Text>
<HubItems templates={templates} />
</>
)}
)} */}
</Container>
</Container>
</div>
Expand Down
12 changes: 7 additions & 5 deletions frontend/components/UsePage/UserInput/Index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -37,14 +37,16 @@ export default function UserInput({
구체적이고 명확하게 입력해 주세요
</Text>
<Text size="sm" c="dimmed" lh={1.6}>
{`여러분이 원하는 템플릿의 기능과 구성 요소에 대해 가능한 한 구체적으로
설명해 주세요. 예를 들어, "EC2 인스턴스를 생성하고 싶어요"
보다는 "t2.micro 타입의 EC2 인스턴스를 2개 생성하고, 각 인스턴스에
10GB의 EBS 볼륨을 연결하고 싶어요"가 더 도움이 됩니다.`}
여러분이 원하는 템플릿의 기능과 구성 요소에 대해 가능한 한 구체적으로
설명해 주세요.
<br />
예를 들어, &quot;EC2 인스턴스를 생성하고 싶어요&quot; 보다는
&quot;t2.micro 타입의 EC2 인스턴스를 2개 생성하고, 각 인스턴스에 10GB의
EBS 볼륨을 연결하고 싶어요&quot;가 더 도움이 됩니다.
</Text>

<Text mt="sm" mb={7}>
주의사항 어쩌구 해주세요
주의사항을 확인해주세요
</Text>
<Text size="sm" c="dimmed" lh={1.6}>
프로젝트에 적용되어야 하는 특정 제약사항이나 필요 조건이 있다면, 이를
Expand Down

0 comments on commit cf570c8

Please sign in to comment.