sprint-asia-custom-component 0.1.132 → 0.1.133

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -23900,24 +23900,51 @@
23900
23900
  })));
23901
23901
  };
23902
23902
 
23903
+ // THIS FILE IS AUTO GENERATED
23904
+ function FaFileAlt(props){return GenIcon({"tag":"svg","attr":{"viewBox":"0 0 384 512"},"child":[{"tag":"path","attr":{"d":"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"}}]})(props);}function FaFileImage(props){return GenIcon({"tag":"svg","attr":{"viewBox":"0 0 384 512"},"child":[{"tag":"path","attr":{"d":"M384 121.941V128H256V0h6.059a24 24 0 0 1 16.97 7.029l97.941 97.941a24.002 24.002 0 0 1 7.03 16.971zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zm-135.455 16c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.491-48 48-48zm208 240h-256l.485-48.485L104.545 328c4.686-4.686 11.799-4.201 16.485.485L160.545 368 264.06 264.485c4.686-4.686 12.284-4.686 16.971 0L320.545 304v112z"}}]})(props);}
23905
+
23903
23906
  const DescriptionFile = ({
23904
23907
  title = "Title",
23905
23908
  link
23906
23909
  }) => {
23910
+ const getFileExtension = url => {
23911
+ const match = url?.split(".").pop();
23912
+ return match ? match.toLowerCase() : "file";
23913
+ };
23914
+ const fileExtension = getFileExtension(link);
23915
+ const getFileIcon = ext => {
23916
+ switch (ext) {
23917
+ case "pdf":
23918
+ return /*#__PURE__*/React__default["default"].createElement(PiFilePdf, {
23919
+ className: "text-black",
23920
+ size: 16
23921
+ });
23922
+ case "png":
23923
+ case "jpg":
23924
+ case "jpeg":
23925
+ return /*#__PURE__*/React__default["default"].createElement(FaFileImage, {
23926
+ className: "text-black",
23927
+ size: 16
23928
+ });
23929
+ default:
23930
+ return /*#__PURE__*/React__default["default"].createElement(FaFileAlt, {
23931
+ className: "text-black",
23932
+ size: 16
23933
+ });
23934
+ }
23935
+ };
23907
23936
  return /*#__PURE__*/React__default["default"].createElement("div", {
23908
23937
  className: "w-full"
23909
23938
  }, title && /*#__PURE__*/React__default["default"].createElement("p", {
23910
23939
  className: "text-sm font-normal text-black mb-1 py-2"
23911
23940
  }, title), /*#__PURE__*/React__default["default"].createElement("div", {
23912
23941
  className: "flex items-center cursor-pointer"
23913
- }, /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement(PiFilePdf, {
23914
- className: "text-black",
23915
- size: 16
23916
- })), /*#__PURE__*/React__default["default"].createElement("a", {
23942
+ }, /*#__PURE__*/React__default["default"].createElement("div", null, getFileIcon(fileExtension)), /*#__PURE__*/React__default["default"].createElement("a", {
23917
23943
  className: "text-md font-semibold text-base ml-1",
23918
- href: link ? link : null,
23919
- target: "_blank"
23920
- }, link ? title + ".pdf" : "Loading...")));
23944
+ href: link || "#",
23945
+ target: "_blank",
23946
+ rel: "noopener noreferrer"
23947
+ }, link ? `${title}.${fileExtension}` : "Loading...")));
23921
23948
  };
23922
23949
 
23923
23950
  const DropdownCard = ({
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "sprint-asia-custom-component",
3
3
  "main": "dist/index.js",
4
- "version": "0.1.132",
4
+ "version": "0.1.133",
5
5
  "private": false,
6
6
  "dependencies": {
7
7
  "@headlessui/react": "^1.7.18",
@@ -1,21 +1,45 @@
1
- import React from 'react';
2
- import { PiFilePdf } from 'react-icons/pi';
1
+ import React from "react";
2
+ import { PiFilePdf } from "react-icons/pi";
3
+ import { FaFileImage } from "react-icons/fa";
4
+ import { FaFileAlt } from "react-icons/fa";
5
+
6
+ const DescriptionFile = ({ title = "Title", link }) => {
7
+ const getFileExtension = (url) => {
8
+ const match = url?.split(".").pop();
9
+ return match ? match.toLowerCase() : "file";
10
+ };
11
+
12
+ const fileExtension = getFileExtension(link);
13
+
14
+ const getFileIcon = (ext) => {
15
+ switch (ext) {
16
+ case "pdf":
17
+ return <PiFilePdf className="text-black" size={16} />;
18
+ case "png":
19
+ case "jpg":
20
+ case "jpeg":
21
+ return <FaFileImage className="text-black" size={16} />;
22
+ default:
23
+ return <FaFileAlt className="text-black" size={16} />;
24
+ }
25
+ };
3
26
 
4
- const DescriptionFile = ({
5
- title = "Title",
6
- link
7
- }) => {
8
27
  return (
9
- <div className='w-full'>
10
- {title && <p className="text-sm font-normal text-black mb-1 py-2">{title}</p>}
11
- <div className='flex items-center cursor-pointer'>
12
- <div>
13
- <PiFilePdf className='text-black' size={16}/>
14
- </div>
15
- <a className='text-md font-semibold text-base ml-1' href={link ? link : null} target="_blank">{link ? title+".pdf" : "Loading..."}</a>
16
- </div>
28
+ <div className="w-full">
29
+ {title && <p className="text-sm font-normal text-black mb-1 py-2">{title}</p>}
30
+ <div className="flex items-center cursor-pointer">
31
+ <div>{getFileIcon(fileExtension)}</div>
32
+ <a
33
+ className="text-md font-semibold text-base ml-1"
34
+ href={link || "#"}
35
+ target="_blank"
36
+ rel="noopener noreferrer"
37
+ >
38
+ {link ? `${title}.${fileExtension}` : "Loading..."}
39
+ </a>
40
+ </div>
17
41
  </div>
18
42
  );
19
43
  };
20
44
 
21
- export default DescriptionFile;
45
+ export default DescriptionFile;