mirror of
https://github.com/pawelmalak/flame.git
synced 2026-03-10 06:23:11 +08:00
Added support for setting icons via URL
This commit is contained in:
@@ -7,3 +7,4 @@ export * from './redirectUrl';
|
||||
export * from './templateObjects';
|
||||
export * from './inputHandler';
|
||||
export * from './storeUIConfig';
|
||||
export * from './validators';
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { queries } from './searchQueries.json';
|
||||
import { Query, SearchResult } from '../interfaces';
|
||||
import { store } from '../store/store';
|
||||
import { isUrlOrIp } from '.';
|
||||
|
||||
export const searchParser = (searchQuery: string): SearchResult => {
|
||||
const result: SearchResult = {
|
||||
@@ -18,10 +19,7 @@ export const searchParser = (searchQuery: string): SearchResult => {
|
||||
const { customQueries, config } = store.getState().config;
|
||||
|
||||
// Check if url or ip was passed
|
||||
const urlRegex =
|
||||
/^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?|^((http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/i;
|
||||
|
||||
result.isURL = urlRegex.test(searchQuery);
|
||||
result.isURL = isUrlOrIp(searchQuery);
|
||||
|
||||
// Match prefix and query
|
||||
const splitQuery = searchQuery.match(/^\/([a-z]+)[ ](.+)$/i);
|
||||
|
||||
25
client/src/utility/validators.ts
Normal file
25
client/src/utility/validators.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
export const isUrlOrIp = (data: string): boolean => {
|
||||
const regex =
|
||||
/^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?|^((http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/i;
|
||||
|
||||
return regex.test(data);
|
||||
};
|
||||
|
||||
export const isUrl = (data: string): boolean => {
|
||||
const regex =
|
||||
/(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]+\.[^\s]{2,}|www\.[a-zA-Z0-9]+\.[^\s]{2,})/i;
|
||||
|
||||
return regex.test(data);
|
||||
};
|
||||
|
||||
export const isImage = (data: string): boolean => {
|
||||
const regex = /.(jpeg|jpg|png)$/i;
|
||||
|
||||
return regex.test(data);
|
||||
};
|
||||
|
||||
export const isSvg = (data: string): boolean => {
|
||||
const regex = /.(svg)$/i;
|
||||
|
||||
return regex.test(data);
|
||||
};
|
||||
Reference in New Issue
Block a user