Skip to content

Commit

Permalink
Merge branch 'develop' into issue/#9090/listview-resources
Browse files Browse the repository at this point in the history
  • Loading branch information
AnveshNalimela committed Nov 12, 2024
2 parents f7c0b57 + 7cb54b3 commit 4bb1ef0
Show file tree
Hide file tree
Showing 2 changed files with 121 additions and 9 deletions.
87 changes: 87 additions & 0 deletions .github/workflows/notify-non-core-qn.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
name: Notify Core Team on Non-Core Questions
on:
issue_comment:
types: [created]
permissions:
issues: write
pull-requests: write
jobs:
notify_core_team:
runs-on: ubuntu-latest
env:
ALLOWED_USERNAMES: ${{ vars.ALLOWED_USERNAMES }}
QUESTION_KEYWORDS: ${{ vars.QUESTION_KEYWORDS }}
QUESTION_LABELS: ${{ vars.QUESTION_LABELS }}
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
steps:
- name: Check and Notify
uses: actions/github-script@v6
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
console.log('Script started');
const isOrgMember = (commenter, allowedUsers) => {
return allowedUsers.split(',').map(u => u.trim()).includes(commenter);
};
const containsQuestionKeywords = (text, keywords) => {
return keywords.split(',').map(k => k.trim()).some(keyword =>
text.toLowerCase().includes(keyword.toLowerCase())
);
};
const addLabelsToIssue = async (github, context, labelsString) => {
const labels = labelsString.split(',').map(label => label.trim()).filter(label => label);
if (labels.length > 0) {
console.log('Adding labels:', labels);
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.issue.number,
labels: labels
});
}
};
const sendSlackNotification = async (webhook, payload) => {
const response = await fetch(webhook, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(payload)
});
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
};
const commenter = context.payload.comment.user.login;
console.log('Commenter:', commenter);
if (!isOrgMember(commenter, process.env.ALLOWED_USERNAMES)) {
const commentBody = context.payload.comment.body;
const sanitizedComment = commentBody
?.replace(/[^\w\s?]/gi, '')
.toLowerCase();
console.log('Comment body:', sanitizedComment);
if (containsQuestionKeywords(sanitizedComment, process.env.QUESTION_KEYWORDS)) {
try {
console.log('Adding labels to the issue');
await addLabelsToIssue(github, context, process.env.QUESTION_LABELS);
console.log('Labels added successfully');
const issueUrl = `https://github.com/${context.repo.owner}/${context.repo.repo}/issues/${context.payload.issue.number}`;
const issueTitle = context.payload.issue.title;
const issueNumber = context.payload.issue.number;
console.log('Issue URL:', issueUrl);
console.log('Issue Title:', issueTitle);
console.log('Issue Number:', issueNumber);
const payload = {
link: issueUrl,
Question: commentBody,
"issue-number": issueNumber,
title: issueTitle,
user: commenter
};
await sendSlackNotification(process.env.SLACK_WEBHOOK, payload);
console.log('Slack notification sent successfully');
} catch (error) {
console.error('Workflow failed:', error.message);
core.setFailed(`Workflow failed: ${error.message}`);
}
}
}
console.log('Script ended');
43 changes: 34 additions & 9 deletions src/components/Common/Loading.tsx
Original file line number Diff line number Diff line change
@@ -1,16 +1,41 @@
const img = "/images/care_logo_gray.svg";
import { useEffect, useRef, useState } from "react";

const Loading = () => {
const containerRef = useRef<HTMLDivElement>(null);
const [offsetTop, setOffsetTop] = useState(0);

useEffect(() => {
const calculateOffset = () => {
if (containerRef.current) {
const rect = containerRef.current.getBoundingClientRect();
setOffsetTop(rect.top);
}
};

calculateOffset();

window.addEventListener("resize", calculateOffset);
window.addEventListener("scroll", calculateOffset, true);

return () => {
window.removeEventListener("resize", calculateOffset);
window.removeEventListener("scroll", calculateOffset, true);
};
}, []);

return (
<div className="grid">
<div className="col-span-12 flex items-center justify-center sm:col-span-12 md:col-span-12 lg:col-span-12">
<div className="App">
<header className="App-header">
<img src={img} className="App-logo" alt="logo" />
</header>
</div>
</div>
<div
ref={containerRef}
className="flex w-full items-center justify-center transition-[height]"
style={{ height: `calc(100vh - ${offsetTop}px)` }}
>
<img
src="/images/care_logo_gray.svg"
className="App-logo"
alt="loading"
/>
</div>
);
};

export default Loading;

0 comments on commit 4bb1ef0

Please sign in to comment.