Skip to content

Commit c278567

Browse files
committed
Lagt til knapp for å kopiere link
1 parent b2375d5 commit c278567

File tree

4 files changed

+33
-6
lines changed

4 files changed

+33
-6
lines changed

frontend/public/icons/copy.svg

+3
Loading

frontend/src/components/ShowAll/ShowAll.tsx

+21-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
import { useEffect, useState } from "react";
1+
import {useEffect, useState} from "react";
22
import {apiRequest} from "../../util/api/apiRequest.ts";
33
import {
4+
IconContainer,
45
StyledLink,
56
StyledTable,
67
TableCell,
@@ -47,6 +48,12 @@ export default function ShowAllUrls() {
4748
});
4849
}
4950

51+
function handleCopyClick(url: string) {
52+
navigator.clipboard.writeText(url).then(() => {
53+
54+
});
55+
}
56+
5057
return (
5158
<TableContainer>
5259
{loading && <p>Loading...</p>}
@@ -70,9 +77,16 @@ export default function ShowAllUrls() {
7077
<TableRow key={url.id}>
7178
<TableCell>{url.id}</TableCell>
7279
<TableCell>
73-
<StyledLink href={import.meta.env.VITE_BASE_URL + url.shortUrl} target="_blank" rel="noopener noreferrer">
74-
{url.shortUrl}
75-
</StyledLink>
80+
<IconContainer>
81+
<Icon icon="copy" onClick={() => {
82+
handleCopyClick(import.meta.env.VITE_BASE_URL + url.shortUrl)
83+
}}/>
84+
<StyledLink href={import.meta.env.VITE_BASE_URL + url.shortUrl} target="_blank"
85+
rel="noopener noreferrer">
86+
{url.shortUrl}
87+
</StyledLink>
88+
89+
</IconContainer>
7690
</TableCell>
7791
<TableCell>
7892
<StyledLink href={url.longUrl} target="_blank" rel="noopener noreferrer">
@@ -82,7 +96,9 @@ export default function ShowAllUrls() {
8296
<TableCell>{new Date(url.createdAt).toLocaleString()}</TableCell>
8397
<TableCell>{url.createdBy || "Unknown"}</TableCell>
8498
<TableCell>{url.clicks}</TableCell>
85-
<TableCell><Icon icon="close" onClick={() => {handleDeleteClick(url.id)}}></Icon></TableCell>
99+
<TableCell><Icon icon="close" onClick={() => {
100+
handleDeleteClick(url.id)
101+
}}></Icon></TableCell>
86102
</TableRow>
87103
))}
88104
</tbody>

frontend/src/components/ShowAll/showall.style.ts

+8
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ export const TableRow = styled.tr`
3030

3131
export const TableCell = styled.td`
3232
padding: 6px;
33+
position: relative;
3334
border: 1px solid #ddd;
3435
text-align: left;
3536
font-size: 14px;
@@ -51,3 +52,10 @@ export const StyledLink = styled.a`
5152
text-decoration: underline;
5253
}
5354
`;
55+
56+
export const IconContainer = styled.div`
57+
display: flex;
58+
align-items: center;
59+
gap: .4rem;
60+
width: 100%;
61+
`

frontend/src/components/shared/Icon/icon.style.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import styled from "styled-components";
22

33
export const StyledIcon = styled.img`
4-
height: 1.1rem;
4+
height: 1rem;
55
&:hover {
66
cursor: pointer;
77
}

0 commit comments

Comments
 (0)