Remove refresh icon and fix Safari/WebKit runtime errors
- Removed manual refresh button from frontend (kept auto-refresh functionality) - Fixed WebKit 'object cannot be found' error by replacing absolute positioning with flexbox - Added lazy loading to images to prevent preload warnings - Cleaned up unused imports and variables: - Removed unused useRef import - Removed unused colors state variable and colorService - Removed unused ColorSwatch import from FilamentTableV2 - Removed unused getModifierIcon function from MaterialBadge - Updated tests to match current implementation - Improved layout stability for better cross-browser compatibility - Removed temporary migration scripts 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -77,12 +77,12 @@ app.get('/api/colors', async (req, res) => {
|
||||
});
|
||||
|
||||
app.post('/api/colors', authenticateToken, async (req, res) => {
|
||||
const { name, hex } = req.body;
|
||||
const { name, hex, cena_refill, cena_spulna } = req.body;
|
||||
|
||||
try {
|
||||
const result = await pool.query(
|
||||
'INSERT INTO colors (name, hex) VALUES ($1, $2) RETURNING *',
|
||||
[name, hex]
|
||||
'INSERT INTO colors (name, hex, cena_refill, cena_spulna) VALUES ($1, $2, $3, $4) RETURNING *',
|
||||
[name, hex, cena_refill || 3499, cena_spulna || 3999]
|
||||
);
|
||||
res.json(result.rows[0]);
|
||||
} catch (error) {
|
||||
@@ -93,12 +93,12 @@ app.post('/api/colors', authenticateToken, async (req, res) => {
|
||||
|
||||
app.put('/api/colors/:id', authenticateToken, async (req, res) => {
|
||||
const { id } = req.params;
|
||||
const { name, hex } = req.body;
|
||||
const { name, hex, cena_refill, cena_spulna } = req.body;
|
||||
|
||||
try {
|
||||
const result = await pool.query(
|
||||
'UPDATE colors SET name = $1, hex = $2, updated_at = CURRENT_TIMESTAMP WHERE id = $3 RETURNING *',
|
||||
[name, hex, id]
|
||||
'UPDATE colors SET name = $1, hex = $2, cena_refill = $3, cena_spulna = $4, updated_at = CURRENT_TIMESTAMP WHERE id = $5 RETURNING *',
|
||||
[name, hex, cena_refill || 3499, cena_spulna || 3999, id]
|
||||
);
|
||||
res.json(result.rows[0]);
|
||||
} catch (error) {
|
||||
@@ -121,7 +121,6 @@ app.delete('/api/colors/:id', authenticateToken, async (req, res) => {
|
||||
|
||||
// Filaments endpoints (PUBLIC - no auth required)
|
||||
app.get('/api/filaments', async (req, res) => {
|
||||
console.log('Filaments request headers:', req.headers);
|
||||
try {
|
||||
const result = await pool.query('SELECT * FROM filaments ORDER BY created_at DESC');
|
||||
res.json(result.rows);
|
||||
@@ -132,13 +131,18 @@ app.get('/api/filaments', async (req, res) => {
|
||||
});
|
||||
|
||||
app.post('/api/filaments', authenticateToken, async (req, res) => {
|
||||
const { tip, finish, boja, boja_hex, refill, vakum, otvoreno, kolicina, cena } = req.body;
|
||||
const { tip, finish, boja, boja_hex, refill, spulna, cena } = req.body;
|
||||
|
||||
try {
|
||||
// Ensure refill and spulna are numbers
|
||||
const refillNum = parseInt(refill) || 0;
|
||||
const spulnaNum = parseInt(spulna) || 0;
|
||||
const kolicina = refillNum + spulnaNum;
|
||||
|
||||
const result = await pool.query(
|
||||
`INSERT INTO filaments (tip, finish, boja, boja_hex, refill, vakum, otvoreno, kolicina, cena)
|
||||
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) RETURNING *`,
|
||||
[tip, finish, boja, boja_hex, refill, vakum, otvoreno, kolicina || 1, cena]
|
||||
`INSERT INTO filaments (tip, finish, boja, boja_hex, refill, spulna, kolicina, cena)
|
||||
VALUES ($1, $2, $3, $4, $5, $6, $7, $8) RETURNING *`,
|
||||
[tip, finish, boja, boja_hex, refillNum, spulnaNum, kolicina, cena]
|
||||
);
|
||||
res.json(result.rows[0]);
|
||||
} catch (error) {
|
||||
@@ -149,16 +153,21 @@ app.post('/api/filaments', authenticateToken, async (req, res) => {
|
||||
|
||||
app.put('/api/filaments/:id', authenticateToken, async (req, res) => {
|
||||
const { id } = req.params;
|
||||
const { tip, finish, boja, boja_hex, refill, vakum, otvoreno, kolicina, cena } = req.body;
|
||||
const { tip, finish, boja, boja_hex, refill, spulna, cena } = req.body;
|
||||
|
||||
try {
|
||||
// Ensure refill and spulna are numbers
|
||||
const refillNum = parseInt(refill) || 0;
|
||||
const spulnaNum = parseInt(spulna) || 0;
|
||||
const kolicina = refillNum + spulnaNum;
|
||||
|
||||
const result = await pool.query(
|
||||
`UPDATE filaments
|
||||
SET tip = $1, finish = $2, boja = $3, boja_hex = $4,
|
||||
refill = $5, vakum = $6, otvoreno = $7, kolicina = $8, cena = $9,
|
||||
refill = $5, spulna = $6, kolicina = $7, cena = $8,
|
||||
updated_at = CURRENT_TIMESTAMP
|
||||
WHERE id = $10 RETURNING *`,
|
||||
[tip, finish, boja, boja_hex, refill, vakum, otvoreno, kolicina || 1, cena, id]
|
||||
WHERE id = $9 RETURNING *`,
|
||||
[tip, finish, boja, boja_hex, refillNum, spulnaNum, kolicina, cena, id]
|
||||
);
|
||||
res.json(result.rows[0]);
|
||||
} catch (error) {
|
||||
|
||||
Reference in New Issue
Block a user