Skip to content

Commit 0e55d4c

Browse files
committed
Completed Channel Customization in Studio
1 parent ac61742 commit 0e55d4c

File tree

1 file changed

+48
-24
lines changed

1 file changed

+48
-24
lines changed

components/Studio/Customization.jsx

Lines changed: 48 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -32,19 +32,25 @@ const BasicInfo = () => {
3232
const { currentChannel } = useChannelState();
3333

3434
useEffect(() => {
35-
const fetchDetails = async () => {
36-
const { data: info1 } = await supabase
37-
.from("channels")
38-
.select()
39-
.eq("uid", currentChannel?.uid);
40-
const { data: info2 } = await supabase
41-
.from("channelInfo")
42-
.select()
43-
.eq("channelRef", currentChannel?.uid);
44-
setChannelDetails(info1[0]);
45-
setChannelInfo(info2[0]);
46-
};
47-
fetchDetails();
35+
try {
36+
const fetchDetails = async () => {
37+
const { data: info1 } = await supabase
38+
.from("channels")
39+
.select()
40+
.eq("uid", currentChannel?.uid);
41+
const { data: info2 } = await supabase
42+
.from("channelInfo")
43+
.select()
44+
.eq("channelRef", currentChannel?.uid);
45+
if (info1 && info2) {
46+
setChannelDetails(info1[0]);
47+
setChannelInfo(info2[0]);
48+
}
49+
};
50+
fetchDetails();
51+
} catch {
52+
(err) => console.log(err);
53+
}
4854
}, []);
4955

5056
const Save = async () => {
@@ -71,6 +77,7 @@ const BasicInfo = () => {
7177
Name
7278
</lable>
7379
<input
80+
spellCheck={false}
7481
id="channelName"
7582
className="input dark:text-gray-200"
7683
value={channelDetails?.channelName}
@@ -90,6 +97,7 @@ const BasicInfo = () => {
9097
Display Name
9198
</lable>
9299
<input
100+
spellCheck={false}
93101
id="channelDisplayName"
94102
className="input dark:text-gray-200"
95103
value={channelDetails?.channelDisplayName}
@@ -167,23 +175,29 @@ const BasicInfo = () => {
167175
);
168176
};
169177

170-
const AddNew = ({ newLink, links, setShowAddDialog, channelRef, setLinks, setNewLink }) => {
178+
const AddNew = ({
179+
newLink,
180+
links,
181+
setShowAddDialog,
182+
channelRef,
183+
setLinks,
184+
setNewLink,
185+
}) => {
171186
const Remove = () => {
172187
setNewLink({ name: "", url: "" });
173188
setShowAddDialog(false);
174189
};
175190

176191
const Add = async () => {
177192
const { name, url } = newLink;
178-
const isCorrect = name?.trim() !== '' && url?.trim() !== '';
179-
console.log(isCorrect)
193+
const isCorrect = name?.trim() !== "" && url?.trim() !== "";
180194
if (isCorrect) {
181195
// adding from the backend
182-
await supabase.from('socialLinks').insert({
183-
name: name,
196+
await supabase.from("socialLinks").insert({
197+
name: name,
184198
url: url,
185-
channelRef: channelRef
186-
})
199+
channelRef: channelRef,
200+
});
187201
setLinks([...links, newLink]);
188202
setNewLink({ name: "", url: "" });
189203
setShowAddDialog(false);
@@ -193,12 +207,15 @@ const AddNew = ({ newLink, links, setShowAddDialog, channelRef, setLinks, setNew
193207
<div className="flex items-center gap-2 w-full">
194208
<Bars2Icon className="icon" />
195209
<input
210+
spellCheck={false}
196211
className="input flex-1 dark:text-gray-200"
197212
placeholder="Link title (required)"
198213
value={newLink?.name}
199214
onChange={(e) => setNewLink({ ...newLink, name: e.target.value })}
200215
/>
201216
<input
217+
type='url'
218+
spellCheck={false}
202219
className="input flex-1 dark:text-gray-200"
203220
placeholder="URL (required)"
204221
value={newLink?.url}
@@ -210,14 +227,18 @@ const AddNew = ({ newLink, links, setShowAddDialog, channelRef, setLinks, setNew
210227
);
211228
};
212229

213-
const Link = ({ name, url, id, setLinks }) => {
230+
const Link = ({ name, url, id, setLinks, channelRef }) => {
214231
const [newName, setNewName] = useState(name);
215232
const [newUrl, setNewUrl] = useState(url);
216233
const Remove = async () => {
217234
// deleting from the backend
218-
await supabase.from("socialLinks").delete().eq("id", id);
219-
const { data } = await supabase.from("socialLinks").select();
220-
setLinks(data);
235+
const { data } = await supabase.from("socialLinks").delete().eq("id", id);
236+
const { data: newLinks } = await supabase
237+
.from("socialLinks")
238+
.select()
239+
.eq("channelRef", channelRef);
240+
241+
setLinks(newLinks);
221242
};
222243

223244
const Update = async () => {
@@ -236,15 +257,18 @@ const Link = ({ name, url, id, setLinks }) => {
236257
<div className="flex items-center gap-2 w-full">
237258
<Bars2Icon className="icon" />
238259
<input
260+
spellCheck={false}
239261
className="input flex-1 dark:text-gray-200"
240262
placeholder="Link title (required)"
241263
value={newName}
242264
onChange={(e) => setNewName(e.target.value)}
243265
/>
244266
<input
267+
spellCheck={false}
245268
className="input flex-1 dark:text-gray-200"
246269
placeholder="URL (required)"
247270
value={newUrl}
271+
type='url'
248272
onChange={(e) => setNewUrl(e.target.value)}
249273
/>
250274
<TrashIcon className="clickable-icon" onClick={() => Remove()} />

0 commit comments

Comments
 (0)