Skip to content

Commit 9d79e73

Browse files
authored
Merge branch 'jargonsdev:main' into feat-word-list-api
2 parents e7e62a1 + f8f56b1 commit 9d79e73

13 files changed

Lines changed: 126 additions & 70 deletions

File tree

apps/jai/components/follow-up-chat.jsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ export default function JAIFollowUpChatWidget({ word }) {
123123
<div key={index} className="flex space-x-3">
124124
{message.role === "user" ? (
125125
<>
126-
<div className="flex-none flex items-center justify-center rounded-lg size-10 border bg-neutral-100 border-neutral-200 border-opacity-50 overflow-hidden">
126+
<div className="flex-none flex items-center justify-center rounded-xl size-10 border bg-neutral-100 border-neutral-200 border-opacity-50 overflow-hidden">
127127
<img src={user.avatar_url} alt={user.name} />
128128
</div>
129129
<div className="w-1 flex-1 bg-neutral-50 border border-neutral-200 border-opacity-50 rounded-tl-sm rounded-2xl p-5">
@@ -132,7 +132,7 @@ export default function JAIFollowUpChatWidget({ word }) {
132132
</>
133133
) : (
134134
<>
135-
<div className="flex-none flex items-center justify-center rounded-lg size-10 border bg-black border-black border-opacity-50">
135+
<div className="flex-none flex items-center justify-center rounded-xl size-10 border bg-black border-black border-opacity-50">
136136
<svg
137137
width="19"
138138
height="18"
@@ -161,7 +161,7 @@ export default function JAIFollowUpChatWidget({ word }) {
161161
{/* jAI Loading */}
162162
{status === "submitted" && (
163163
<div className="flex space-x-3">
164-
<div className="flex-none flex items-center justify-center rounded-lg size-10 border bg-black border-black border-opacity-50">
164+
<div className="flex-none flex items-center justify-center rounded-xl size-10 border bg-black border-black border-opacity-50">
165165
<svg
166166
width="19"
167167
height="18"
@@ -304,7 +304,7 @@ function JAIIntro({ status, word, onQuestionClick }) {
304304
<button
305305
key={index}
306306
onClick={() => onQuestionClick(questionTemplate)}
307-
className="bg-neutral-100 border border-neutral-200 rounded-lg text-sm md:text-base px-4 py-1.5 md:px-5 md:py-2.5 hover:bg-neutral-200 transition-colors duration-200 cursor-pointer"
307+
className="bg-neutral-100 border border-neutral-200 rounded-xl text-sm md:text-base px-4 py-1.5 md:px-5 md:py-2.5 hover:bg-neutral-200 transition-colors duration-200 cursor-pointer"
308308
>
309309
{formatQuestion(questionTemplate, word)}
310310
</button>
@@ -313,7 +313,7 @@ function JAIIntro({ status, word, onQuestionClick }) {
313313
) : (
314314
<a
315315
href={`/login?return_to=${encodeURIComponent(pathname + (pathname.includes("?") ? "&" : "?") + "jai=1")}`}
316-
className="flex items-center justify-center h-12 mr-3 px-3 text-lg font-medium bg-black text-white border no-underline rounded-lg focus:outline-none hover:shadow-xl"
316+
className="flex items-center justify-center h-12 mr-3 px-3 text-lg font-medium bg-black text-white border no-underline rounded-xl focus:outline-none hover:shadow-xl"
317317
>
318318
<svg
319319
xmlns="http://www.w3.org/2000/svg"

apps/jai/components/word-search.jsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,10 @@ export default function JAIWordSearch({ word }) {
4646
if (status === "submitted" || (status === "ready" && messages.length === 0))
4747
return (
4848
<div className="space-y-4">
49-
<div className="h-6 w-full animate-pulse bg-gray-200 rounded-md" />
50-
<div className="h-6 w-3/4 animate-pulse bg-gray-200 rounded-md" />
51-
<div className="h-6 w-4/5 animate-pulse bg-gray-200 rounded-md" />
52-
<div className="h-6 w-3/5 animate-pulse bg-gray-200 rounded-md" />
49+
<div className="h-6 w-full animate-pulse bg-gray-200 rounded-lg" />
50+
<div className="h-6 w-3/4 animate-pulse bg-gray-200 rounded-lg" />
51+
<div className="h-6 w-4/5 animate-pulse bg-gray-200 rounded-lg" />
52+
<div className="h-6 w-3/5 animate-pulse bg-gray-200 rounded-lg" />
5353
</div>
5454
);
5555

@@ -58,7 +58,7 @@ export default function JAIWordSearch({ word }) {
5858
*/
5959
if (error)
6060
return (
61-
<div className="rounded-md bg-red-50 p-4">
61+
<div className="rounded-lg bg-red-50 p-4">
6262
<div className="flex items-center gap-2">
6363
<svg
6464
xmlns="http://www.w3.org/2000/svg"

src/components/contribution-cta.astro

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<section class="rounded-lg border shadow-sm">
1+
<section class="rounded-xl border shadow-sm">
22
<div
33
class="space-y-1.5 p-3 md:p-6 flex flex-col lg:flex-row lg:items-center justify-between gap-4"
44
>
@@ -9,7 +9,7 @@
99
</p>
1010
</div>
1111
<a
12-
class="flex items-center w-fit justify-center no-underline px-4 py-2 rounded-md border border-gray-200 bg-white hover:bg-gray-100 text-sm shadow-sm hover:shadow transition-colors"
12+
class="flex items-center w-fit justify-center no-underline px-4 py-2 rounded-xl border border-gray-200 bg-white hover:bg-gray-100 text-sm shadow-sm hover:shadow transition-colors"
1313
href="/editor/new"
1414
>
1515
<span>Start Now</span>

src/components/islands/profile.jsx

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ export default function Profile({ isAuthed, userData, authUrl }) {
1818
return (
1919
<a
2020
href={authUrl}
21-
className="flex items-center justify-center px-2 py-1.5 md:px-3 md:py-2 text-sm md:text-base font-medium bg-black text-white border no-underline rounded-lg focus:outline-none hover:shadow-lg"
21+
className="flex items-center justify-center px-2 py-1.5 md:px-3 md:py-2 text-sm md:text-base font-medium bg-black text-white border no-underline rounded-xl focus:outline-none hover:shadow-lg"
2222
onClick={() => setIsAuthLoading(true)}
2323
>
2424
{isAuthLoading ? (
25-
<div className="size-4 md:size-5 border-2 border-t-white border-l-white border-r-white border-b-black rounded-full animate-spin" />
25+
<div className="size-5 md:size-6 border-2 border-t-white border-l-white border-r-white border-b-black rounded-full animate-spin" />
2626
) : (
2727
<span className="flex items-center">
2828
<svg
@@ -49,25 +49,24 @@ export default function Profile({ isAuthed, userData, authUrl }) {
4949
<div className="relative">
5050
{/* Profile */}
5151
<button
52-
className={`${isDropdownOpen ? "ring-gray-200" : "ring-gray-100"} relative bg-gray-100 ring-4 flex items-center justify-center hover:ring-gray-200 overflow-hidden rounded-full transition-colors duration-700 cursor-pointer focus-visible:outline-none`}
52+
className={`${isDropdownOpen && "ring-2 ring-gray-200"} relative border p-0.5 border-gray-200 shadow flex items-center justify-center hover:bg-gray-100 overflow-hidden rounded-r-xl rounded-l-3xl transition-colors duration-700 cursor-pointer focus-visible:outline-none`}
5353
onClick={() => setIsDropdownOpen((prev) => !prev)}
5454
>
5555
{/* User Avatar */}
5656
<img
57-
className="size-10 rounded-full"
57+
className="size-8 md:size-10 rounded-full"
5858
loading="lazy"
5959
src={userData.avatar_url}
6060
alt={userData.login}
6161
/>
6262

6363
{/* Display Close Visual Cue */}
64-
<div className="size-10 flex items-center justify-center backdrop-blur-sm rounded-full">
64+
<div className="w-8 md:w-10 flex items-center justify-center backdrop-blur-sm rounded-full">
6565
{isDropdownOpen ? (
6666
<svg
6767
aria-hidden="true"
6868
xmlns="http://www.w3.org/2000/svg"
69-
width="24"
70-
height="24"
69+
className="size-6"
7170
fill="none"
7271
viewBox="0 0 24 24"
7372
>
@@ -100,7 +99,7 @@ export default function Profile({ isAuthed, userData, authUrl }) {
10099

101100
{/* Dropdown */}
102101
<div
103-
className={`${!isDropdownOpen && "hidden"} z-50 absolute overflow-hidden mt-2 right-0 bg-white border text-sm divide-y divide-gray-100 rounded-lg shadow-lg min-w-64`}
102+
className={`${!isDropdownOpen && "hidden"} z-50 absolute overflow-hidden mt-2 right-0 bg-white border text-sm divide-y divide-gray-100 rounded-xl shadow-lg min-w-64`}
104103
>
105104
<div className="flex items-center space-x-2 px-4 py-3 text-sm">
106105
{/* User Avatar */}

src/components/islands/search.jsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ function SearchTrigger({ size = "md" }) {
9292
if (size === "sm")
9393
return (
9494
<div onClick={() => $isSearchOpen.set(!isSearchOpen)}>
95-
<div className="relative w-56 text-sm hidden @lg:flex items-center justify-between border pl-2.5 p-1 space-x-2 border-gray-400 rounded-lg cursor-text">
95+
<div className="relative w-56 text-sm hidden @lg:flex items-center justify-between border pl-2.5 p-1 space-x-2 border-gray-400 rounded-xl cursor-text">
9696
<div className="flex items-center text-gray-400 space-x-2">
9797
<svg
9898
xmlns="http://www.w3.org/2000/svg"
@@ -110,7 +110,7 @@ function SearchTrigger({ size = "md" }) {
110110
</svg>
111111
<span className="focus:outline-none truncate">Search word</span>
112112
</div>
113-
<kbd className="text-gray-600 py-1 px-2 rounded-md border border-gray-400 ml-auto bg-gray-100">
113+
<kbd className="text-gray-600 py-1 px-2 rounded-lg border border-gray-400 ml-auto bg-gray-100">
114114
{isMacOS ? (
115115
<>
116116
<span className="text-sm mr-0.5"></span>K
@@ -142,7 +142,7 @@ function SearchTrigger({ size = "md" }) {
142142
return (
143143
<div
144144
onClick={() => $isSearchOpen.set(!isSearchOpen)}
145-
className="relative flex items-center justify-between mt-2 border pl-3 p-1 md:pl-5 md:pr-2 md:py-2 space-x-3 border-gray-400 rounded-lg hover:shadow cursor-text"
145+
className="relative flex items-center justify-between mt-2 border pl-3 p-1 md:pl-5 md:pr-2 md:py-2 space-x-3 border-gray-400 rounded-xl hover:shadow cursor-text"
146146
>
147147
<div className="flex items-center text-gray-400 space-x-3">
148148
<svg
@@ -163,7 +163,7 @@ function SearchTrigger({ size = "md" }) {
163163
Search words
164164
</span>
165165
</div>
166-
<kbd className="text-gray-600 rounded-md p-1 md:px-4 md:py-2 text-sm sm:text-base border border-gray-400 bg-gray-100">
166+
<kbd className="text-gray-600 rounded-lg p-1 md:px-4 md:py-2 text-sm sm:text-base border border-gray-400 bg-gray-100">
167167
{isMacOS ? (
168168
<>
169169
<span className="text-sm mr-0.5"></span>K
@@ -254,7 +254,7 @@ function SearchDialog() {
254254
/>
255255

256256
<div
257-
className="flex flex-col bg-white h-fit max-w-5xl max-h-full w-full shadow-xl z-50 border rounded-lg overflow-hidden"
257+
className="flex flex-col bg-white h-fit max-w-5xl max-h-full w-full shadow-xl z-50 border rounded-xl overflow-hidden"
258258
onMouseMove={() => cursor !== -1 && setCursor(-1)}
259259
>
260260
{/* Form Field */}
@@ -286,7 +286,7 @@ function SearchDialog() {
286286
/>
287287
<kbd
288288
onClick={() => $isSearchOpen.set(!isSearchOpen)}
289-
className="text-gray-600 rounded-md px-2 py-1 md:px-4 md:py-2 text-sm sm:text-base border bg-gray-100 cursor-pointer"
289+
className="text-gray-600 rounded-lg px-2 py-1 md:px-4 md:py-2 text-sm sm:text-base border bg-gray-100 cursor-pointer"
290290
>
291291
ESC
292292
</kbd>

src/components/islands/word-editor.jsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export default function WordEditor({
2929
const togglePreview = useStore($togglePreview);
3030

3131
return (
32-
<div className="w-full flex border rounded-lg">
32+
<div className="w-full flex border rounded-xl">
3333
<Editor
3434
action={action}
3535
eTitle={title}
@@ -54,7 +54,7 @@ export function SubmitButton({ children = "Submit" }) {
5454

5555
return (
5656
<button
57-
className={`flex items-center justify-center no-underline text-white ${isSubmitted ? "bg-green-700" : "bg-gray-900 hover:bg-gray-700"} focus:ring-0 font-medium rounded-lg text-base px-5 py-2.5 text-center`}
57+
className={`flex items-center justify-center no-underline text-white ${isSubmitted ? "bg-green-700" : "bg-gray-900 hover:bg-gray-700"} focus:ring-0 font-medium rounded-xl text-base px-5 py-2.5 text-center`}
5858
type="submit"
5959
form="jargons.dev:word_editor"
6060
disabled={isSubmitLoading || isSubmitted}
@@ -173,7 +173,7 @@ function Editor({ eTitle, eContent, eMetadata, className, action, ...props }) {
173173
method: "DELETE",
174174
body: formData,
175175
});
176-
if (response.status === 200) {
176+
if (response.status === 204) {
177177
$isWordSubmitLoading.set(false);
178178
alert(
179179
"Reference cleared successfully! Kindly publish your contribution again!",
@@ -237,7 +237,7 @@ function Preview({ className, ...props }) {
237237

238238
return (
239239
<div className={`${className} select-none`} {...props}>
240-
<div className="h-1 grow overflow-auto rounded-lg border p-5 shadow-lg scrollbar">
240+
<div className="h-1 grow overflow-auto rounded-xl border p-5 shadow-lg scrollbar">
241241
<DummyPreviewNavbar />
242242

243243
<div className="max-w-4xl space-y-8 mx-auto">
@@ -283,7 +283,7 @@ const DummyPreviewNavbar = () => (
283283
</span>
284284

285285
<div className="cursor-not-allowed">
286-
<div className="relative w-56 text-sm hidden @md:flex items-center justify-between border pl-2.5 p-1 space-x-2 border-gray-400 rounded-lg">
286+
<div className="relative w-56 text-sm hidden @md:flex items-center justify-between border pl-2.5 p-1 space-x-2 border-gray-400 rounded-xl">
287287
<div className="flex items-center text-gray-400 space-x-2">
288288
<svg
289289
xmlns="http://www.w3.org/2000/svg"
@@ -301,7 +301,7 @@ const DummyPreviewNavbar = () => (
301301
</svg>
302302
<span className="focus:outline-none truncate">Search word</span>
303303
</div>
304-
<kbd className="text-gray-600 py-1 px-2 rounded-md border border-gray-400 ml-auto bg-gray-100">
304+
<kbd className="text-gray-600 py-1 px-2 rounded-lg border border-gray-400 ml-auto bg-gray-100">
305305
<>
306306
<span className="text-sm mr-0.5"></span>K
307307
</>

src/layouts/word.astro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ const editUrl = `/editor/edit/${frontmatter.url.split("/")[3].split(".")[0]}`;
4343
<JAIFollowUpChatWidgetTrigger client:visible />
4444
</span>
4545

46-
<!-- <div class="w-2/5 h-3 bg-neutral-100 rounded-lg" /> -->
46+
<!-- <div class="w-2/5 h-3 bg-neutral-100 rounded-xl" /> -->
4747
</div>
4848

4949
<!-- Edit Button -->

src/lib/fork.js

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export async function forkRepository(userOctokit, projectRepoDetails) {
2323
if (fork) {
2424
// console.log("Repo is already forked!");
2525

26-
const { isUpdated, updateSHA } = await isRepositoryForkUpdated(
26+
const { isUpdated } = await isRepositoryForkUpdated(
2727
userOctokit,
2828
projectRepoDetails,
2929
fork,
@@ -34,7 +34,6 @@ export async function forkRepository(userOctokit, projectRepoDetails) {
3434

3535
await updateRepositoryFork(userOctokit, fork, {
3636
ref: repoMainBranchRef,
37-
sha: updateSHA,
3837
});
3938
}
4039

@@ -62,24 +61,23 @@ export async function forkRepository(userOctokit, projectRepoDetails) {
6261
* Update (Sync) repository to state of main (head) repository
6362
* @param {import("octokit").Octokit} userOctokit
6463
* @param {string} forkedRepoFullname
65-
* @param {{ ref: string, sha: string }} headRepoRef
64+
* @param {{ ref: string }} headRepoRef
6665
*/
6766
async function updateRepositoryFork(
6867
userOctokit,
6968
forkedRepoFullname,
7069
headRepoRef,
7170
) {
7271
const { repoOwner, repoName } = getRepoParts(forkedRepoFullname);
73-
const { ref, sha } = headRepoRef;
74-
const formattedRef =
75-
ref.split("/")[0] === "refs" ? ref.split("/").slice(1).join("/") : ref;
72+
const { ref } = headRepoRef;
73+
// Extract branch name from ref (e.g., "refs/heads/main" -> "main" or "heads/main" -> "main")
74+
const branchName = ref.replace(/^refs\//, "").replace(/^heads\//, "");
7675

7776
try {
78-
await userOctokit.request("PATCH /repos/{owner}/{repo}/git/refs/{ref}", {
77+
await userOctokit.request("POST /repos/{owner}/{repo}/merge-upstream", {
7978
owner: repoOwner,
8079
repo: repoName,
81-
ref: formattedRef, //-> `heads/${branchToSync}`
82-
sha,
80+
branch: branchName,
8381
});
8482

8583
// console.log("Fork is now updated and in-sync with upstream");
@@ -96,7 +94,7 @@ async function updateRepositoryFork(
9694
* @param {import("octokit").Octokit} userOctokit
9795
* @param {{ repoFullname: string, repoMainBranchRef: string }} projectRepoDetails
9896
* @param {string} forkedRepoFullname
99-
* @returns {Promise<{ isUpdated: boolean, updateSHA: string }>}
97+
* @returns {Promise<{ isUpdated: boolean }>}
10098
*/
10199
async function isRepositoryForkUpdated(
102100
userOctokit,
@@ -121,7 +119,6 @@ async function isRepositoryForkUpdated(
121119
return {
122120
isUpdated:
123121
forkedRepoMainBranch.object.sha === projectRepoMainBranch.object.sha,
124-
updateSHA: projectRepoMainBranch.object.sha,
125122
};
126123
} catch (error) {
127124
throw new Error("Error occurred while checking fork update status", {

src/pages/editor/index.astro

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ const totalWords = {
9898

9999
<div class="grid md:grid-cols-2 gap-2">
100100
<!-- Total Words -->
101-
<div class="p-6 space-y-2 rounded-lg border shadow-sm">
101+
<div class="p-6 space-y-2 rounded-xl border shadow-sm">
102102
<div class="w-full flex justify-between">
103103
<div class="text-3xl font-bold tracking-tighter">
104104
{totalWords.count}
@@ -151,7 +151,7 @@ const totalWords = {
151151
</div>
152152

153153
<!-- Pending Words -->
154-
<div class="p-6 space-y-2 rounded-lg border shadow-sm">
154+
<div class="p-6 space-y-2 rounded-xl border shadow-sm">
155155
<div class="w-full flex justify-between">
156156
<div class="text-3xl font-bold tracking-tighter">
157157
{pendingWords.count}
@@ -202,7 +202,7 @@ const totalWords = {
202202
</div>
203203

204204
<!-- New Words -->
205-
<div class="p-6 space-y-2 rounded-lg border shadow-sm">
205+
<div class="p-6 space-y-2 rounded-xl border shadow-sm">
206206
<div class="w-full flex justify-between">
207207
<div class="text-3xl font-bold tracking-tighter">
208208
{newWords.count}
@@ -255,7 +255,7 @@ const totalWords = {
255255
</div>
256256

257257
<!-- Edited Words -->
258-
<div class="p-6 space-y-2 rounded-lg border shadow-sm">
258+
<div class="p-6 space-y-2 rounded-xl border shadow-sm">
259259
<div class="w-full flex justify-between">
260260
<div class="text-3xl font-bold tracking-tighter">
261261
{editedWords.count}

0 commit comments

Comments
 (0)